Data transmission method and apparatus

ABSTRACT

A method for data transmission in a radio data transmission system having a plurality of parallel single-input single-output or multiple-input multiple-output channels over which the data is transmitted, the data represented by a plurality of data symbols, the data symbols being spread prior to transmission by a plurality of spreading sequences is described. The method comprises determining a system value λk for each signature sequence k of a plurality of signature sequences K, wherein the system value λk is indicative of a signal-to-noise ratio of the associated signature sequence k; determining a number of signature sequences K* to be used for spreading the data symbols in accordance with the system values λk associated with the plurality of signature sequences K, selecting the signature sequences S to be used to spread the data symbols from the plurality of signature sequences K in accordance with the system values λk associated with the plurality of signature sequences K, wherein the number of signature sequences selected corresponds to the determined number of signature sequences K*, and spreading the data symbols using the selected signature sequences S.

FIELD OF INVENTION

The present invention relates to the field of mobile radio system data transmission. More specifically, but not exclusively, embodiments of the present invention relate to methods for determining spreading sequences to be used to spread data symbols for transmission in a mobile radio system.

BACKGROUND TO THE INVENTION

Mobile radio system technologies are continuously advancing with a general aim of increasing data rates. The third generation mobile radio system uses a code division multiple access transmission scheme and has been extensively adopted worldwide. The third generation partnership project (3GPP) has developed the high speed down link packet access (HSDPA) system in the Release 5 specification of the Universal Mobile Telecommunications System (UMTS) as a multi-code wide-band code division multiple access (CDMA) system. The success of third generation wireless cellular systems is based largely on the efficient resource allocation scheme used by the HSDPA system to improve the downlink throughput.

With the recent availability of enabling technologies such as adaptive modulation and coding and also hybrid automatic repeat request, it has been possible to introduce internet enabled smart phones for internet-centric applications. The trend for the HSDPA system is to improve the downlink throughput for smart phones with high-data-rate applications. The throughput of the HSDPA downlink has been extensively evaluated. It has been found, in recent years, that the data throughput achievable in practice is significantly lower than the theoretical upper-bound when using the Multiple-Input Multiple-Output (MIMO) HSDPA system.

The downlink throughput optimization for the HSDPA multi-code CDMA system has been considered to be a two part problem. The first problem is that of the signature sequence and power allocation for downlink users. The second problem is the link throughput optimization for a given resource allocation.

The first problem involves the scheduling of users for transmission. This has been extensively examined for downlink transmission. Furthermore, signature sequence design and allocation have been studied in conjunction with power allocation in the context of sum rate maximization for downlink frequency selective channels. It has also been considered how design methods can be utilised to iteratively calculate the transmitter signature sequences and also the mean-square-error (MSE) minimizing receiver despreading filter coefficients. In addition, it has been shown that there exists an optimum set of signature sequences, which maximize the total link throughput for a given set of channel impulse responses between the transmitter and receiver antennas of a MIMO system. Furthermore, systems in which an optimum set of orthogonal signature sequences is identified for a given set of channel impulse responses have been considered.

The use of optimum spreading sequences requires that the channel state information (CSI) should be available both at the transmitter and the receiver. The CSI at the transmitter requires a lot of signaling overhead over both the downlink and the uplink channels. Various methods have therefore been considered to minimize the signaling overhead by enabling each MIMO downlink transmitter antenna to use the same set of orthogonal spreading sequences. An approach was considered by 3GPP and a method was standardized to use a given fixed set size of Orthogonal Variable Spreading Factor (OVSF) spreading sequences. A MIMO system requires a signature sequence set size higher than the given single set of OVSF signature sequences available for each antenna. 3GPP standardized a method which increases the OVSF set size by multiplying the given set with precoding weights and then concatenating the weighted sets of spreading sequences. Each transmission symbol is then spread with a different spreading sequence at each MIMO antenna before transmission. Hence, a unique pre-coded spreading sequence is produced by concatenating the spreading sequences used at each antenna for each transmission symbol. The concatenated spreading sequence is orthogonal to the remaining set of spreading sequences which are available at the transmitter for other transmission symbols. However, the spreading sequence orthogonality is lost at the receiving end after transmission over frequency selective multipath channels. It has been proposed that a linear MMSE equalizer followed by a despreader could be used to restore the orthogonality of the spreading sequences at each receiver and to recover the transmitted symbols after transmission over a multipath channel.

Recent developments have considered a self interference (SI) problem, which is present in linear MMSE equalizers, when operating over multipath channels. In such a problem, the aim is to reduce the large gap between the currently practical achievable rates and the theoretical upper bound for the HSDPA throughput. A receiver with an independent symbol level MMSE equalizer followed by a symbol level successive-interference-cancellation (SIC) scheme deals with the intra-cell self interference. It has been proposed that a hybrid linear equalizer/interference cancelling receiver tailored to the HSDPA standard could be utilised. Furthermore, it has been proposed that use of a SIC receiver in collaboration with either a chip or a symbol level MMSE equalizer for the HSDPA downlink throughput optimization could be used.

The use of a chip level MMSE linear equalizer followed by a despreader and a symbol level SIC is considered to suppress the inter-chip interference (ICI) and also all inter-stream interference. A channel matched filter (CMF) as a linear chip level MMSE equalizer has been shown to maximize the signal-to-noise ratio by collecting the energy at the multipath channel central tap. The chip level equalizer is used to produce an estimate of the transmitted chip sequence which is then despread by one of the transmitter spreading sequences to detect one of the transmitted symbol streams. The recovered symbol is then used to remove the interference iteratively at chip level. Each iteration requires the calculation of the chip level linear equalizer coefficients. The total number of iterations is equal to the number of transmitted data streams.

The use of a receiver with the linear MMSE equalizer and a single stage SIC detector to solve the second downlink throughput maximization problem requires the joint optimization of the transmitter and receiver. Various transmission power allocation schemes can be derived over different data streams for a two stage successive interference cancellation scheme in multi-code MIMO systems. A two stage SIC detection scheme with the transmitter power optimization can improve the throughput performance for multi-code downlink transmission. However, each iteration of the SIC, the equalizer coefficient and the power allocation calculations requires an inversion of a covariance matrix for the received signal. The dimension of the covariance matrix is usually large, and as such the iterative power allocation, the linear MMSE equalizer and the SIC implementations at the receiver become computationally expensive. Simplifications for the inversion of large matrices has been examined to make the implementation of the linear MMSE equalizers followed by the symbol level SIC practically feasible.

Various attempts have been made to attempt to optimise transceiver design. Usually, different optimization criteria are used when allocating powers for the multi-code downlink throughput optimization. Some techniques focus on the transceiver design optimization criteria and others concentrate on criteria for the joint rate and power allocation. Recently, a game theoretic approach has been introduced as an addition to the joint rate and power adaptation methods, which are generalized in L. Zhao and J. Mark, “Joint rate and power adaptation for radio resource management in uplink wideband code division multiple access systems,” IET Communications, vol. 2, no. 4, pp. 562-572, April 2008, under three headings as follows:

-   -   1. The first criterion includes the systems which optimize the         transmission power to maximize the rate for a given realization         of channel gains. A typical example is L. Y. Hoon and K. S. Wu,         “Generalized joint power and rate adaptation in ds-cdma         communications over fading channels,” IEEE Transactions on         Vehicular Technology, vol. 57, no. 1, pp. 603-608, January 2008         which optimizes the number of symbols and the number of bits per         symbol. The aim is to maximize the total rate by iteratively         adjusting the transmission powers and spreading sequences whilst         satisfying a target signal-to-interference-noise (SINR) ratio at         each receiver. The transmission power can be iteratively         adjusted to meet a target signal-to-noise ratio at each         receiver. In addition the total transmission energy for a target         signal-to-noise ratio (SNR) can be minimised at the output of         each receiver. This type of optimization is known as the margin         adaptive loading method. The transmission power and spreading         sequences can be optimised to maximize the total rate over         multi-code parallel channels, whilst keeping the total         transmission power below a given total power constraint. This         type of iterative energy allocation is known as the rate         adaptive loading method.     -   2. The second method aims to maintain the received power at a         target level, whilst maximizing the total rate by jointly         optimizing the transmission power, rate and signature sequences         and also the linear MMSE equalizers at the receiver. One example         of such a method is S. Ulukus and A. Yener, “Iterative         transmitter and receiver optimization for cdma networks,” IEEE         Transactions on Wireless Communications, vol. 3, no. 6, pp.         1879-1884, November 2004 which jointly optimizes a set of         transmission spreading sequences and receivers with linear MMSE         equalizers. The aim is to maximize the throughput or minimize to         the mean-square-error at each receiver, when each received         signal power level is known to the transmitter.     -   3. The third method, one example of which is described in L.         Zhao and J. Mark, “Joint rate and power adaptation for radio         resource management in uplink wideband code division multiple         access systems, ” IET Communications, vol. 2, no. 4, pp.         562-572, April 2008, uses the average system performance as an         evaluation criterion which requires the distribution of the         received and the interference signal powers.

In the first and second adaptation schemes and, in particular, in the margin and rate adaptive loading area it is assumed that the rate and power adaptation is much faster than the changes in the link gains due to users being mobile. In T. Bogale, L. Vandendorpe, and B. Chalise, “Robust transceiver optimization for downlink coordinated base station systems: Distributed algorithm,” IEEE Transactions on Signal Processing., vol. PP, no. 99, p. 1, 2011 a robust margin adaptive loading scheme is examined to minimize the total transmission power subject to per user (or per stream) MSE constraints for a MIMO downlink transmission. A rate adaptive loading scheme is given to maximize the total rate for a given fixed length of spreading sequences. A rate adaptive optimization method is presented in N. Vucic, H. Boche, and S. Shi, “Robust transceiver optimization in downlink multiuser mimo systems,” IEEE Transactions on Signal Processing, vol. 57, no. 9, pp. 3576-3587, September 2009 to minimize the weighted MSE of a downlink MIMO system when considering a constrained total transmission power. A rate adaptive loading scheme is given in T. Bogale, B. Chalise, and L. Vandendorpe, “Robust transceiver optimization for downlink multiuser mimo systems,” IEEE Transactions on Signal Processing, vol. 59, no. 1, pp. 446-453, January 2011 to minimize the weighted MSE with per base station antenna power constraint.

In the current HSDPA system specifications, an equal energy allocation scheme is used to load each channel with either a single rate or two discrete rates. Parameters of the MMSE receivers are usually optimized using either the max-min weighted SINR criterion or the total MSE minimization criterion. Recently, an iterative power adaptation method known as the two-group resource allocation scheme has been developed as described in Z. He, M. Gurcan, and H. Ghani, “Time-efficient resource allocation algorithm over hsdpa in femtocell networks,” in Personal, Indoor and Mobile Radio Communications workshops (PIMRC Workshops), 2010 IEEE 21st International Symposium on, September 2010, pp. 197-202, and Z. He and M. Gurcan, “Optimized resource allocation of hsdpa using two group allocation in frequency selective channel,” in IEEE International Conference on Wireless Communications Signal Processing, 2009. WCSP 2009, November 2009, pp. 1-5. In the method, two distinct discrete bit rates are loaded over the multi-code downlink channels subject to a constrained total transmission power.

Despite of the various developments in this field, the data throughput achieved in practice is still significantly lower than the theoretical upper-bound when using the Multiple-Input Multiple-Output (MIMO) HSDPA system.

SUMMARY OF INVENTION

Embodiments of the present invention attempt to mitigate at least some of the above-mentioned problems.

In accordance with an aspect of the invention there is provided a method for data transmission in a radio data transmission system having a plurality of parallel single-input single-output or multiple-input multiple-output channels over which the data is transmitted, the data represented by a plurality of data symbols, the data symbols being spread prior to transmission by a plurality of spreading sequences. The method comprises determining a system value λ_(k) for each signature sequence k of a plurality of signature sequences K, wherein the system value λ_(k) is indicative of a signal-to-noise ratio of the associated signature sequence k; determining a number of signature sequences K* to be used for spreading the data symbols in accordance with the system values λ_(k) associated with the plurality of signature sequences K, selecting the signature sequences S to be used to spread the data symbols from the plurality of signature sequences K in accordance with the system values λ_(k) associated with the plurality of signature sequences K, wherein the number of signature sequences selected corresponds to the determined number of signature sequences K*, and spreading the data symbols using the selected signature sequences S.

The number of sequences K* may be determined and the signature sequences S to be used to spread the symbols may be selected by: calculating the mean system value

$\left\lbrack {\overset{\rightarrow}{\lambda}}_{mean} \right\rbrack_{K_{best}} = \frac{\sum\limits_{k}^{K_{best}}\; \lambda_{k}}{K_{best}}$

for K_(best)=K to K_(best)=1, wherein K_(best) is an initial number of signature sequences utilised for calculating the mean system value └{right arrow over (λ)}_(mean)┘_(K) _(best) , and wherein each signature sequence is assigned an equal transmission energy E_(k) for calculating the mean system values └{right arrow over (λ)}_(mean)┘_(K) _(best) ; determining the number of signature sequences K* to be used for spreading the data symbols and selecting the signature sequences S to be used to spread the symbols in accordance with the mean system value vector {right arrow over (λ)}_(mean), wherein the mean system value vector {right arrow over (λ)}_(mean) comprises the plurality of mean system values └{right arrow over (λ)}_(mean)┘_(K) _(best) for K_(best)1 to K_(best)=K.

The number of signature sequences K* to be used for spreading the data symbols may also be determined to be equal to the initial number of signature sequences K_(best) when the following equation is satisfied:

${\lambda^{*}\left( b_{p_{K_{best}}} \right)} \leq \left\lbrack {\overset{\rightarrow}{\lambda}}_{mean} \right\rbrack_{K_{best}} < {{\lambda^{*}\left( b_{p_{K_{best}} + 1} \right)}.}$

for K_(best)1 to K_(best)=K, wherein └{right arrow over (λ)}_(mean)┘_(K) _(best) is the mean system value,

b_(p_(K_(best)))

is a discrete data rate that can be allocated to each data symbol and is chosen from a plurality of data rates from b₁ to b_(p) for integer values of p from p=1 to p=P for a plurality of P discrete rates for a target system value λ*(b_(p)), the target system value λ*(b_(p)) being determined in terms of the data rate b_(p) by using the following equation:

${\lambda^{*}\left( b_{p_{k}} \right)} = \frac{\Gamma \left( {2^{b_{p}} - 1} \right)}{1 - {\Gamma \left( {2^{b_{p}} - 1} \right)}}$

wherein Γ is the gap value for the modulation scheme and the selected signature sequences S are the K* signature sequences of the plurality of signature sequences K having the highest system values λ_(k).

In addition, the number of sequences K* may also be determined and the signature sequences S to be used to spread the symbols may be selected by calculating the minimum system value └{right arrow over (λ)}_(min)┘_(K) _(opt) =min({right arrow over (λ)}) for K_(opt)=K to K_(opt)=1 wherein K_(opt) is an initial number of signature sequences utilised for calculating the minimum system value └{right arrow over (λ)}_(min)┘_(K) _(opt) , and each signature sequence is assigned an equal transmission energy E_(k), determining the number of signature sequences K* and selecting the signature sequences S to be used to spread the data symbols in accordance with the minimum system value vector {right arrow over (λ)} _(min) comprising a plurality of minimum system values └{right arrow over (λ)}_(min)┘_(K) _(opt) for K_(opt)=K to K_(opt)=1.

The number of signature sequences K* to be used for spreading the data symbols may also be determined to be equal to the initial number of signature sequences K_(opt) when the following equation is satisfied:

${\lambda^{*}\left( b_{p_{K_{opt}}} \right)} \leq \left\lbrack {\overset{\rightarrow}{\lambda}}_{\min} \right\rbrack_{K_{opt}} < {{\lambda^{*}\left( b_{p_{K_{opt}} + 1} \right)}.}$

for K_(opt)=1 to K_(opt)=K, wherein └{right arrow over (λ)}_(min)┘_(K) _(opt) is the minimum system value,

b_(p_(Kopt))

is a discrete data rate that can be allocated to each symbol and is chosen from a plurality of data rates from b₁ to b_(p) for integer values of p from p=1 to p=P for a plurality of P discrete rates for a target system value λ*(b_(p)), and the selected signature sequences S are the K* signature sequences of the plurality of signature sequences K having the highest system values λ_(k).

The method may further comprise ordering, before selecting the signature sequences S, the plurality of signature sequences K from the signature sequence k of the plurality of signature sequences K having the highest system value λ_(k) to the signature sequence k of the plurality of signature sequences K having the lowest system value λ_(k), wherein a high system value λ_(k) is indicative of a high signal-to-noise ratio, and the selected signature sequences S are the first K* signature sequences of the ordered signature sequence.

In addition, the method may further comprise allocating data rates b_(p) _(k) to the plurality of selected signature sequences S in accordance with the system value λ_(k), wherein the summation of the allocated data rates b_(p) _(k) corresponds to a total data rate per symbol period. The data rates b_(p) _(k) may be allocated when determining the number of signature sequences K*.

The total data rate may be determined by finding a maximum integer number m_(EE) that satisfies:

${{\left( {K^{*} - m_{EE}} \right){\lambda^{*}\left( b_{p_{K^{*}}} \right)}} + {m_{EE}{\lambda^{*}\left( {b_{p_{K^{*}}} + 1} \right)}}} \leq {K^{*}\left\lfloor {\overset{\rightarrow}{\lambda}}_{m\; i\; n} \right\rfloor_{K^{*}}}$

wherein the first group of signature sequences are (K*−m_(EE)) used to transmit data at a discrete data rate b_(p) _(K*) and a second group of signature sequences comprising the remaining m_(EE) signature sequences are used to transmit data at a discrete rate

b_(p_(K^(*)) + 1)

for the case corresponding to equal energy allocation.

Furthermore, the total data rate may be determined by finding a maximum integer m_(ES) that satisfies:

${{\left( {K^{*} - m_{ES}} \right){\lambda^{*}\left( b_{p_{K^{*}}} \right)}} + {m_{ES}{\lambda^{*}\left( b_{p_{K^{*}} + 1} \right)}}} \leq {K^{*}\left\lfloor {\overset{\rightarrow}{\lambda}}_{mean} \right\rfloor_{K^{*}}}$

wherein a first group of signature sequences (K*−m_(ES)) are used to transmit data at a discrete data rate b_(p) _(K*) , and a second group of signature sequences comprising the remaining m_(ES) signature sequences are used to transmit data at a discrete rate

b_(p_(K^(*)) + 1).

The method may further comprise allocating transmission energies to the plurality of selected signature sequences K in accordance with the allocated transmission data rate b_(p) _(k) and the corresponding system values λ_(k) to maximize the total data rate per symbol period for the total transmission energy, wherein the summation of the allocated transmission energies corresponds to a total transmission energy E_(T).

The transmission energies E_(k,i) may be determined iteratively with the following equation based upon a receiver without a successive interference cancellation, SIC, scheme wherein the mean system value is used to determine the number of signature sequences K*:

$E_{k,i} = \frac{\lambda^{*}\left( b_{p_{K^{*}}} \right)}{{\overset{\rightarrow}{q}}_{k}^{H}C_{i - 1}^{- 1}{\overset{\rightarrow}{q}}_{k}}$

wherein i is the iteration number, C_(i−1) ⁻¹ is an inverse covariance matrix which is determined by inverting covariance matrix C_(i−1), wherein the covariance matrix C_(i−1) is expressed in terms of an extended matched filter signature sequence matrix Q_(e) and an extended amplitude matrix A_(e,(i−1))=I₃

A_((i−1)) using the following equation C_(i−1)=Q_(e)A_(e(i−1)) ²Q_(e) ^(H)+2σ²I_(N) _(R) _((N+l−1)), wherein

is the kronecker product and the amplitude matrix A_((i−1))=diag└√{square root over (E_(1,(i−1)))}, √{square root over (E_(2,(i−1)))}, . . . , √{square root over (E_(K*,(i−1)))}┘ is expressed in terms of transmission energies, wherein 2σ² is the noise variance, N_(R) is the number of receiver antennas, N is the processing gain, L is the multipath delay spread length, wherein the extended matched filter receiver sequence matrix Q_(e) is expressed in accordance with the following equation Q_(e)=[Q,Q₁,Q₂], wherein Q₁ represents the matched filter sequences for the previous symbol period and Q₂ represents the matched filter sequences for the next symbol period, and Q₁ and Q₂ are expressed in accordance with Q₁=└I_(N) _(R)

(J_(N+L−1) ^(T))^(N)┘Q=└{right arrow over (q)}_(1,1), . . . , {right arrow over (q)}_(k,1), . . . {right arrow over (q)}_(k*,1)┘ and Q₂=[I_(N) _(R)

J_(N+L−1) ^(N)]Q=└{right arrow over (q)}_(1,2), . . . , {right arrow over (q)}_(k,2), . . . {right arrow over (q)}_(k*,2)┘, wherein {right arrow over (q)}_(k,1) and {right arrow over (q)}_(k,2) are the ISI matched filter sequences for the previous and next symbol periods of the number of signature sequences K*, wherein

$J_{N + L - 1} = \begin{bmatrix} {\overset{\rightarrow}{0}}_{({N + L - 2})}^{T} & 0 \\ I_{N + L - 2} & {\overset{\rightarrow}{0}}_{N + L - 2} \end{bmatrix}$

is the shift matrix, wherein the matched filter despreading signature sequence matrix Q=└{right arrow over (q)}₁, . . . ,{right arrow over (q)}_(k), . . . {right arrow over (q)}_(k*)┘ is determined with the following equation Q=HS, wherein {right arrow over (q)}_(k) is the matched filter receiver despreading signature sequence for a plurality of transmission signature sequences S=└{right arrow over (s)}₁, . . . ,{right arrow over (s)}_(k), . . . {right arrow over (s)}_(k*)┘ of length N wherein H is the MIMO system convolution matrix for a frequency selective multipath channel, wherein the convolution matrix H is expressed in accordance with the following equation

${H = \begin{bmatrix} H^{({1,1})} & \ldots & H^{({1,N_{T}})} \\ \vdots & \ldots & \vdots \\ H^{({N_{R},1})} & \ldots & H^{({N_{R},N_{T}})} \end{bmatrix}},$

wherein N_(T) is the total number of transmitter antennas, the channel convolution matrix H^((n) ^(r) ^(,n) ^(t) ⁾ between each pair of receiver antenna n_(r) and transmitter antenna n_(t) with channel impulse response vector {right arrow over (h)}^((n) ^(r) ^(, n) ^(t) ⁾=[h₀ ^((n) ^(r) ^(,n) ^(t) ⁾, . . . , h_(L−1) ^((n) ^(r) ^(,n) ^(t) ⁾] is expressed in terms of the following equation

$H^{({n_{r},n_{t}})} = {\begin{bmatrix} {\overset{\rightarrow}{h}}^{({n_{r},n_{t}})} & 0 & \ldots & 0 \\ 0 & {\overset{\rightarrow}{h}}^{({n_{r},n_{t}})} & \ldots & \vdots \\ \vdots & \ldots & \ddots & 0 \\ 0 & 0 & \ldots & {\overset{\rightarrow}{h}}^{({n_{r},n_{t}})} \end{bmatrix}.}$

The transmission energies E_(k,i) may also be determined iteratively by solving the following equation based upon a receiver with a successive interference cancellation, SIC, scheme wherein the mean system value is used to determine the number of signature sequences K*:

$E_{k,i} = \frac{\gamma^{*}\left( b_{p_{k}} \right)}{\xi - \frac{E_{k,{({i - 1})}}{\xi_{3}}^{2}}{1 + E_{k,{{({i - 1})}\xi_{1}}}} - \frac{E_{k,{({i - 1})}}\begin{pmatrix} {{\xi_{4}}^{2} - {2\frac{E_{k,{({i - 1})}}}{1 + {E_{k,{({i - 1})}}\xi_{1}}}\xi_{6}} +} \\ {\left( \frac{E_{k,{({i - 1})}}}{1 + {E_{k,{({i - 1})}}\xi_{1}}} \right)^{2}{\xi_{5}}^{2}{\xi_{3}}^{2}} \end{pmatrix}}{1 + {E_{k}\left( {\xi_{2} - {\frac{E_{k,{({i - 1})}}}{1 + {E_{k,{({i - 1})}}\xi_{1}}}{\xi_{5}}^{2}}} \right)}}}$

for a given inverse covariance matrix C_(k−1) ⁻¹ wherein the inverse matrix C_(k−1) ⁻¹ is the inverse of the covariance matrix C_(k−1) wherein the covariance matrix C_(k−1) is iteratively determined by solving the following equation:

C _(k) =C _(k−1) +E _(k) {right arrow over (q)} _(k) {right arrow over (q)} _(k) ^(H) +E _(k) {right arrow over (q)} _(k,1) {right arrow over (q)} _(k,1) ^(H) +E _(k) {right arrow over (q)} _(k,2) {right arrow over (q)} _(k,2) ^(H)

for k=1, . . . , K* when using C₀=2σ²I_(N) _(R) _((N+L−1)), wherein the target SNR γ*(b_(p) _(k) ) is determined by using the following equation:

γ_(k)^(*)(b_(p_(k))) = Γ(2^(b_(p_(k))) − 1),

the weighting factors ξ, ξ₁, ξ₂, ξ₃, ξ₄, ξ₅, and ξ₆ are constructed from the SIC receiver covariance matrix C_(k−1) ⁻¹ and {right arrow over (q)}_(k), {right arrow over (q)}_(k,1) and {right arrow over (q)}_(k,2) using

ξ={right arrow over (q)} _(k) ^(H) {right arrow over (d)}, ξ ₁ ={right arrow over (q)} _(k,1) ^(H) {right arrow over (d)} ₁, ξ₂ ={right arrow over (q)} _(k,2) ^(H) {right arrow over (d)} ₂,

ξ₃ ={right arrow over (q)} _(k) ^(H) {right arrow over (d)} ₁, ξ₄ ={right arrow over (q)} _(k) ^(H) {right arrow over (d)} ₂, ξ₅ ={right arrow over (q)} _(k,1) ^(H) {right arrow over (d)} ₂, ξ₆=Real(ξ₃ξ*₄ξ₅);

wherein the distance vectors {right arrow over (d)}, {right arrow over (d)}₁, {right arrow over (d)}₂ are determined using the following equations

{right arrow over (d)}=C _(k−1) ⁻¹ {right arrow over (q)} _(k) ,{right arrow over (d)} ₁ =C _(k−1) ⁻¹ {right arrow over (q)} _(k,1) ,{right arrow over (d)} ₂ =C _(k−1) ⁻¹ {right arrow over (q)} _(k,2).

For an inverse covariance matrix

${{C_{k - 1}^{- 1}\mspace{14mu} {with}\mspace{14mu} C_{0}^{- 1}} = {\frac{1}{2\; \sigma^{2}}I_{N_{R}{({N + L - 1})}}}},$

and also for an energy allocation E_(k) and a set of MIMO system parameters with {right arrow over (q)}_(k), {right arrow over (q)}_(k,1) and {right arrow over (q)}_(k,2),E_(k), σ², the inverse covariance matrix C_(k) ⁻¹ may be constructed for k=1, . . . , K* starting at k=1 using the inverse covariance matrix C_(k−1) ⁻¹ and the energy E_(k) by determining the distance vectors, {right arrow over (d)}, {right arrow over (d)}₁ and {right arrow over (d)}₂, determining the weighting factors ξ, ξ₁, ξ₂, ξ₃ξ₄, ξ₅, and ξ₆, and determining the weighted energy terms and ζ₁, and ζ₂ by using the allocated energy E_(k) for k=1, . . . , K* in the following equations:

${\zeta_{1} = \frac{E_{k}}{1 + {E_{k}\xi_{1}}}},{{\zeta_{2} = \frac{E_{k}}{1 + {E_{k}\left( {\xi_{2} - {\zeta_{1}{\xi_{5}}^{2}}} \right)}}};}$

determining the interim matrices Z₁, Z₂, Z₃ by solving the following equations:

Z ₁ ={right arrow over (d)} ₁ {right arrow over (d)} ₁ ^(H), Z₂ ={right arrow over (d)} ₂ {right arrow over (d)} ₂ ^(H), Z₃ ={right arrow over (d)} ₁ {right arrow over (d)} ₂ ^(H);

determining the inverse reduced covariance matrix D_(k) ⁻¹ by solving the following equation:

D _(k) ⁻¹ =C _(k−1) ⁻¹−(ζ₁ ²ζ₂|ξ₅|²+ζ₁)Z ₁−ζ₂ Z ₂+ζ₁ζ₂(ξ₅ Z ₃+ξ*₅ Z ₃ ^(H)); and

constructing the inverse of the covariance matrix C_(k) ⁻¹ by using the following equation:

C _(k) ⁻¹ =D _(k) ⁻¹ −ζZ ₄;

wherein the weighted energy term ζ is determined by solving the following equation:

${\zeta = \frac{E_{k}}{1 + {E_{k}\left( {\xi - \frac{E_{k}{\xi_{3}}^{2}}{1 + {E_{k}\xi_{1}}} - \frac{E_{k}\begin{pmatrix} {{\xi_{4}}^{2} - {2\frac{E_{k}}{1 + {E_{k}\xi_{1}}}\xi_{6}} +} \\ {\left( \frac{E_{k}}{1 + {E_{k}\xi_{1}}} \right)^{2}{\xi_{5}}^{2}{\xi_{3}}^{2}} \end{pmatrix}}{1 + {E_{k}\left( {\xi_{2} - {\frac{E_{k}}{1 + {E_{k}\xi_{1}}}{\xi_{5}}^{2}}} \right)}}} \right)}}},;$

wherein the interim matrix Z₄ is determined by using the following equation:

Z ₄ ={right arrow over (d)} ₃ {right arrow over (d)} ₃ ^(H); and

wherein the distance vector {right arrow over (d)}₃ is determined using the following equation:

{right arrow over (d)} ₃ =D _(k) ⁻¹ {right arrow over (q)} _(k).

The number of signature sequences K* may be determined and the signature sequences S to be used to spread the data may be selected using an iterative water-filling based continuous bit loading method comprising determining the number of signature sequences K* by determining the total number of signature sequences that maximize the total data rate b_(T,K).

For a plurality of matched filter signature sequences {right arrow over (q)}_(k), {right arrow over (q)}_(k,1) and {right arrow over (q)}_(k,2), the iterative water-filling optimisation method may further comprise setting an initial number of signature sequences K_(opt), determining the system values λ_(k) associated with the initial number of signature sequences K_(opt), determining a channel SNR vector {right arrow over (g )} using the following equation:

${\left\lbrack \overset{->}{g} \right\rbrack_{k} = \frac{\lambda_{k}}{E_{k}\left( {1 - \lambda_{k}} \right)}};$

for an energy allocation E_(k), determining a water filling constant K_(WF) using the following equation:

${K_{WF} = {\frac{1}{K_{opt}}\left( {E_{T} + {\Gamma {\sum\limits_{k = 1}^{K_{opt}}\; \frac{1}{\left\lbrack \overset{->}{g} \right\rbrack_{k}}}}} \right)}};$

wherein E_(T) is a total transmission energy, determining energies E_(k) to be allocated to each signature sequence k of the plurality of signature sequences K by using the following equation:

$E_{k} = {K_{WF} - \frac{\Gamma}{\left\lbrack \overset{\rightarrow}{g} \right\rbrack_{k}}}$

reordering the matched filter signature sequences {right arrow over (q)}_(k), {right arrow over (q)}_(k,1) and {right arrow over (q)}_(k,2) in accordance with the system values └{right arrow over (λ)}┘_(k)=λ_(k) associated with the initial number of signature sequences K_(opt) in an ascending order to provide an ordered list of matched filter signature sequences, deleting the first matched filter sequences {right arrow over (q)}₁, {right arrow over (q)}_(1,1) and {right arrow over (q)}_(1,2) of the ordered list of matched filter signature sequences, and setting K_(opt)=K_(opt)−1 if the allocated energy E₁ is negative, repeating the above steps, determining a total number of bits b_(T,K) to be transmitted by using:

${b_{T,k} = {\sum\limits_{k = 1}^{K_{opt}}\; {\log_{2}\left( {1 + \frac{\lambda_{k}}{\Gamma \left( {1 - \lambda_{k}} \right)}} \right)}}};$

determining the number of signature sequences K* of the plurality of signature sequences K under consideration by using K*=K_(opt).

The iterative water filling method may determine the number of signature sequences K* by initially setting the total number of signature sequences K*=K, determining a total data rate to be transmitted and the number of signature sequences K* for values of K*=K−1 until the number of signature sequences K* reaches the value K*=1, and selecting the number of signature sequences K* for the plurality of signature sequences K which maximises the total data rate.

The system value may be determined by the following equation:

λ_(k)=γ_(k)ε_(k)

wherein γ_(k) is the signal-to-noise ratio at an output of a de-spreading unit of an MMSE receiver, and ε_(k) is the mean-square-error at the output of the de-spreading unit, the mean-square-error relating to the system value by λ_(k)=1−ε_(k).

Furthermore, the system value λ_(k) may be determined in accordance with the following equation based upon a receiver without a successive interference cancelling, SIC, scheme:

λ_(k) =E _(k) {right arrow over (q)} _(k) ^(H) C ⁻¹ {right arrow over (q)} _(k)

wherein C is expressed in terms of the extended matched filter signature sequence matrix Q_(e) and the extended amplitude matrix A_(e)=I₃

A using the following equation C=Q_(e)A_(e) ²Q_(e) ^(H)+2σ²I_(N) _(R) _((N+l−1)) wherein

is the kronecker product and the amplitude matrix A=diag└√{square root over (E₁)}, √{square root over (E₂)}, . . . , √{square root over (E_(k*))}┘, wherein the matched filter despreading signature sequence matrix Q=└{right arrow over (q)}₁, . . . , {right arrow over (q)}_(k), . . . {right arrow over (q)}_(K*)┘ is formed to construct the extended matched filter signature sequence matrix Q_(e) by using the following equation Q_(e)=[Q, Q₁, Q₂], wherein Q₁ represents the matched filter sequences for the previous symbol period and Q₂ represents the matched filter sequences for the next symbol period, wherein Q₁ and Q₂ are expressed in accordance with the following equations Q₁=└I_(N) _(R)

(J_(N+L−1) ^(T))^(N)┘Q=[{right arrow over (q)}_(1,1), . . . , {right arrow over (q)}_(k,1), . . . {right arrow over (q)}_(K*,1)]and Q₂=[I_(N) _(R)

J_(N+L−1) ^(N)]Q=└{right arrow over (q)}_(1,2), . . . , {right arrow over (q)}_(k,2), . . . {right arrow over (q)}_(k*,2)┘, wherein {right arrow over (q)}_(k,1) and {right arrow over (q)}_(k,2) are the ISI matched filter sequences for the previous and next symbol periods.

The system value λ_(k) may also be determined in accordance with the following equation based upon a receiver having a successive interference cancelling, SIC, scheme:

λ_(k) =E _(k) {right arrow over (q)} _(k) ^(H) C _(k) ⁻¹ {right arrow over (q)} _(k)

wherein C_(k−1) is a covariance matrix which is iteratively determined by solving the following equation:

C _(k) =C _(k−1) +E _(k) {right arrow over (q)} _(k) {right arrow over (q)} _(k) ^(H) +E _(k) {right arrow over (q)} _(k,1) {right arrow over (q)} _(k,1) ^(H) +E _(k) {right arrow over (q)} _(k,2) {right arrow over (q)} _(k,2) ^(H)

for k=1, . . . , K* when using C₀=2σ²I_(N) _(R) _((N+L−1)) wherein {right arrow over (q)}_(k,1) and {right arrow over (q)}_(k,2) are the ISI matched filter sequences for the previous and next symbol periods and {right arrow over (q)}_(k) is the matched filter despreading signature sequence.

In accordance with another aspect of the invention apparatus is provided which is arranged to perform any of the methods described above. The apparatus may be a radio transmission base station.

In accordance with yet another aspect of the invention a computer readable medium is provided which is implementable on a computer and operable, in use, to perform any of the methods described above.

Embodiments of the invention provide a system model for the HSDPA MIMO system which is extended to model successive interference cancellation schemes. The scheme may be integrated with an iterative covariance matrix inversion method. This simplifies the inversions of covariance matrices. Such a method can be used iteratively to calculate the transmission energies and to allocate transmission data rates for each parallel channel in a given HSDPA MIMO system.

Embodiments of the invention provide a novel method to obtain the transmission bit rates before allocating the transmission energies. The allocated rates can be used in conjunction with the iterative covariance matrix inversions to calculate the transmission energies whilst optimizing the sum capacity for a given total transmission energy. The sum capacity can be improved by dynamically changing the number of spreading sequences. This scheme requires both the identification of the optimum transmission numbers and also the spreading sequences to be used for a given transmission channel convolution matrix between the MIMO transmitter and receiver antennas.

Embodiments of the invention provide two different algorithms to find the optimum number of spreading sequences using the previously developed two group equal SNR algorithm and the equal energy allocation schemes.

Embodiments of the invention achieve a performance close to the system value upper bound, when using the proposed optimum number of spreading schemes and the spreading sequence selection scheme.

Embodiments of the invention provide a receiver with a symbol level linear MMSE equalizer followed by a single level SIC detector. Embodiments of the invention optimize the transmission power and the receiver for a single-user multi-code downlink transmission system. The receiver can advantageously suppress the ICI and ISI interferences iteratively without the need to invert a large covariance matrix for each iteration for multi-code downlink transmission over frequency selective channels.

Embodiments of the invention also provide an iterative transmission power/energy adaptation scheme to maximize the sum capacity of the downlink for a single user, when using discrete transmission rates and a constrained total transmission power.

Embodiments of the invention utilise an energy adaptation criterion known as the system value optimization criterion to maximize the total rate. The system value approach is a modified version of the total mean-square-error (MMSE) minimization criterion.

In embodiments of the invention the power/energy adaptation method is implemented iteratively without focusing either on the distribution of the received and interference powers or maintaining each destination's received signal power at a target level. The method can maximize the total transmission rate by optimizing the power allocated to each channel to maintain the signal-to-noise-ratio at desired target levels using the linear MMSE and the SIC receiver.

In accordance with embodiments of the invention a system utilising a MIMO transmitter and receiver and multiple spreading sequences is considered. Data symbols may be spread using a plurality of spreading sequences prior to transmitting over a frequency selective multipath channel. At the receiver each spreading sequence {right arrow over (s)}_(k) may have an associated system value λ_(k) which is indicative of the signal to noise ratio γ_(k) at a receiver. The system value λ_(k)for each spreading sequence may depend on the transmission multipath channel. As such, the transmission system optimization disclosed herein may retain the spreading sequences with the highest system values and identify the number of spreading sequences to be used for a given total received signal-to-noise ratio corresponding to a given total transmission energy E_(T).

BRIEF DESCRIPTION OF THE DRAWINGS

Exemplary embodiments of the invention shall now be described with reference to the drawings in which:

FIG. 1 provides a schematic illustration of an HSDPA MIMO transmitter and receiver arrangement; and

FIG. 2 provides a schematic illustration of a Successive Interference Cancelling receiver.

Throughout the description and the drawings, like reference numerals refer to like parts.

SPECIFIC DESCRIPTION

A first embodiment of the invention shall now be described with reference to FIG. 1.

In FIG. 1, a transmitter 100 receives input vectors of {right arrow over (u)}_(k) for k=1, . . . , K* and this input data is encoded and mapped into encoding unit 101. The encoded data {right arrow over (d)}_(k) for k=1, . . . , K* produced by the encoding unit 101 is then processed by the adaptive modulation and coding unit 102 to transform the encoded data into symbol vectors {right arrow over (x)}_(k)=[x_(k)(1), . . . , x_(k)(ρ), . . . , x_(k)(N^((x)))]^(T) for each channel k =1, . . . , K*. The transmission symbol energies are then adjusted using the power control unit 103. The energy weighted data symbols are transformed into a transmitted vector A{right arrow over (y)}(ρ)=A[y₁(ρ), . . . , y_(k)(ρ), . . . , y_(k*)(ρ)]^(T) containing the weighted symbols over the symbol period ρ=1, . . . , N^((x)) using the vector generation unit of 104. The data symbols are then spread by a plurality of spreading sequences in the spreading unit 105. The spread symbols are next filtered using the pulse shaping filter 106 to produce transmission signals for transmission from the MIMO transmitters 107 a, 107 b, . . . , 107N_(T).

The transmitted signal is then received at the receiver 200 by the MIMO receivers 201 a, 201 b, . . . , 201N. The received signal is then frequency down converted, filtered and sampled at chip period intervals by the chip matched filter unit 202. The sampled data vectors are then concatenated by the vector concatenation unit 203 and despread by the despreading unit 204 using the de-spreading sequences to estimate the transmitted data symbols for each symbol period. The estimated data symbols are then reorganised to produce the estimated data for each spreading sequence using the receiver vector mapping unit 205, and the decision unit 206.

Each of the above-mentioned units of the transmitter and receiver, apart from the actual MIMO transmitters 107 a, 107 b, . . . , 107N and receivers 201 a, 201 b, . . . , 201N are implemented in software.

The system of this embodiment of the invention is designed to determine which spreading sequences can be used in the above-mentioned data transmission apparatus in order to improve the overall data rate achievable by the system. Embodiments of the invention are based around the principle of utilising a system value in order to determine which spreading sequences should be utilised for the spreading by the spreading unit 105 in order to increase the achievable data rates.

The system value is a variable which is indicative of the characteristics of the channel over which the data is to be transmitted. The system value is the normalized usable signal energy at the output the de-spreading unit. The difference between the normalised total energy of unity and the system value gives the mean square error at the output of the de-spreading unit. The ratio of the normalised energy, the system value, to the mean square error gives the signal-to-noise ratio at the output of the de-spreading unit. Hence, the system value is indicative of a signal to noise ratio over the channel.

The system value allows for a determination to be made regarding which spreading sequences will be stronger and which will be weaker given the characteristics of the transmission channel. As such, weaker spreading sequences can be excluded from the transmission process, and consequently only the stronger spreading sequences are utilised to spread the data symbols, and therefore increased data rates are achieved.

The determination of the system value in accordance with the first embodiment of the invention is set-out below.

In this embodiment of the invention a multi-code CDMA downlink system as shown in FIG. 1 with a total of N_(T) and N_(R) transmitter and receiver antennas and also K spreading sequences, each of which is realizable with a bit rate of b_(p) _(k) bits per symbol from a set of bit rates,

, {b_(p_(k))}_(p_(k) = 1)^(P),

for a given total energy E_(T) and p=1,2, . . . , P is considered.

By excluding the weak channels corresponding to a specific set of spreading sequences, the number of parallel transmission channels is reduced to K* spreading sequences to transmit a symbol per channel. The data for the intended symbol for each channel is placed in an (N_(U)×1)-dimensional vector {right arrow over (u)}_(k) for k=1, . . . , K* . Each of these data packets is then channel encoded to produce a (B×1)-dimensional vector {right arrow over (d)}_(k) and mapped to symbols using a quadrature amplitude modulation scheme (QAM) with M constellations to transmit data at a rate b=log₂M bits per symbol. The channel encoder rate is

$r_{code} = \frac{N_{U}}{B}$

and the realizable discrete rates are given by b_(p)=r_(code)log₂M for p=1, . . . , P where P is the number of available discrete data rates.

Data is transmitted in packets at a transmission-time-interval (TTI) and the number of symbols transmitted per packet is denoted as N^((x)) where

$N^{(x)} = \frac{TTI}{{NT}_{c}}$

and N is the spreading sequence length, T_(c) is the chip period and NT_(c) is the symbol period. The transmission symbols, corresponding to each vector {right arrow over (d)}_(k) over the period ρ=1, . . . , N^((x)) are used to produce the (N^((x))×1)-dimensional symbol vector {right arrow over (x)}_(k)=[x_(k)(1), . . . , x_(k)(ρ), . . . , x_(k)(N^((x)))]^(T) for each channel k=1, . . . , K*. The entire block of transmission can be represented as an (N^((x))×K*) dimensional transmit symbol matrix defined as:

$\begin{matrix} {X = \left\lfloor {{\overset{->}{x}}_{1},\cdots \mspace{14mu},{\overset{->}{x}}_{k},\cdots \mspace{14mu},{\overset{->}{x}}_{K^{*}}} \right\rfloor} & (1) \\ {= {\left\lbrack {{\overset{->}{y}(1)},\cdots \mspace{14mu},{\overset{->}{y}(\rho)},{\cdots \mspace{14mu} {\overset{->}{y}\left( N^{(x)} \right)}}} \right\rbrack^{T}.}} & (2) \end{matrix}$

The transmitted vector {right arrow over (y)}(ρ)=[y₁(ρ), . . . , y_(k)(ρ), . . . , y_(K*)(ρ)]^(T) contains the symbols, over the symbol period ρ=1, . . . , N^((x)), with the unit average energy E└y_(k)(ρ)y*_(k)(ρ)┘=1 for k=1, . . . , K*.

Power allocation is performed on the symbols before spreading. The energies for all K* channels are stored in an amplitude matrix A=diag(√{square root over (E₁)}, . . . , √{square root over (E_(k))}, . . . , √{square root over (E_(k*))}) subject to the total energy E_(T) such that Σ_(k=1) ^(k*)E_(k)≦E_(T).

After assigning energies, the amplitude weighted symbols are spread with N×K* dimensional spreading sequences S_(n) _(t) =[{right arrow over (s)}_(n) _(t) _(,1), . . . {right arrow over (s)}_(n) _(t) _(,k), {right arrow over (s)}_(n) _(t) _(,K*)], for n₁=1, . . . , N_(T). For a MIMO system with a total of N_(T) transmitter antennas the signature sequence matrix of N_(T)N×K* is formed as:

$\begin{matrix} {S = {\left\lbrack {{\overset{\rightarrow}{s}}_{1},\ldots \mspace{14mu},{\overset{\rightarrow}{s}}_{K^{*}}} \right\rbrack = \left\lbrack {S_{1}^{T},\ldots \mspace{14mu},S_{n_{t}}^{T},{\ldots \mspace{14mu} S_{N_{T}}^{T}}} \right\rbrack^{T}}} & (3) \end{matrix}$

where |{right arrow over (s)}_(k)|²=1. At every symbol period ρ=1, . . . , N^((x)) the length N transmit vector:

$\begin{matrix} {{{\overset{\rightarrow}{z}}_{n_{t}}(\rho)} = {\left\lfloor {{z_{n_{t},1}(\rho)},\ldots \mspace{14mu},{z_{n_{t},N}(\rho)}} \right\rfloor^{T} = {S_{n_{t}}A{\overset{\rightarrow}{y}(\rho)}}}} & (4) \end{matrix}$

is generated at the input of n_(t) ^(th) antenna for n_(t)=1, . . . , N_(T). Each element of vector {right arrow over (z)}_(n) _(t) (ρ) is fed to a pulse shaping filter at integer multiples of the chip period T_(c) prior to being modulated using an up converter modulator to transmit the spread signal at the desired transmission carrier frequency using the n_(t) ^(th) transmitter antenna.

At each TTI, pilot signals estimate the channel condition at each receiver and feed the estimates back to the transmitter. It is assumed that the channel condition does not change for that TTI. All symbols in block N^((x)) in all spread sequence channels from the n_(t) ^(th) transmitter antenna to the n_(r) ^(th) receiver antenna experience the same channel condition in multipath environment with L resolvable paths. This can be represented by a channel impulse response function {right arrow over (h)}^((n) ^(r) ^(,n) ^(t) ⁾=[h₀ ^((n) ^(r) ^(,n) ^(t) ⁾ . . . h_(L−1) ^((n) ^(r) ^(,n) ^(t) ⁾]^(T) and its corresponding ((N+L−1)×N)-dimensional channel convolution matrix H^((n) ^(r) ^(,n) ^(t) ⁾ as follows:

$\begin{matrix} {H^{({n_{r},n_{t}})} = {\begin{bmatrix} h_{0}^{({n_{r},n_{t}})} & 0 & \; & 0 \\ \vdots & h_{0}^{({n_{r},n_{t}})} & \; & \vdots \\ h_{L - 1}^{({n_{r},n_{t}})} & \vdots & \ddots & 0 \\ 0 & h_{L - 1}^{({n_{r},n_{t}})} & \; & h_{0}^{({n_{r},n_{t}})} \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \; & h_{L - 1}^{({n_{r},n_{t}})} \end{bmatrix}.}} & (5) \end{matrix}$

The overall (N_(R)(N+L−1)×N_(T)N)-dimensional MIMO channel convolution matrix can be formed as:

$\begin{matrix} {H = {\begin{bmatrix} H^{({1,1})} & \cdots & H^{({1,N_{T}})} \\ \vdots & \ddots & \vdots \\ H^{({N_{R},1})} & \cdots & H^{({N_{R},N_{T}})} \end{bmatrix}.}} & (6) \end{matrix}$

At the receiver, the resultant multipath causes the despreading signature sequences to be longer than the spreading signature sequences at the transmit antenna as the channel impulse response convolves with the transmitter signature sequences S. The N_(R)(N+L−1)×K* dimensional receiver matched filter signature sequence matrix is obtained as:

Q=HS=[{right arrow over (q)} ₁ , . . . {right arrow over (q)} _(k) , . . . {right arrow over (q)} _(K*)]  (7)

where the N_(R)(N+L−1)-dimensional vector {right arrow over (q)}_(k)=H{right arrow over (s)}_(k) is the receiver matched filter despreading sequence. This causes inter-symbol-interference and inter-code interference. At the receiver, the ISI can be dealt with by forming the N_(R)(N+L−1)×3K* dimensional extended matched filter matrix:

Q _(e) └Q,└I _(N) _(R)

(J^(T))^(N) ┘Q, [I _(N) _(R)

J ^(N) ]Q┘  (8)

where the signature sequence matrices ØI_(N) _(R)

(J^(T))^(N)┘Q=└I_(N) _(R)

(J^(T))^(N)┘HS and └I_(N) _(R)

J^(N)┘Q=└I_(N) _(R)

J^(N)┘HS are expressed as:

Q ₁ =└I _(N) _(R)

(J ^(T))^(N) ┘HS=[{right arrow over (q)} _(1,1) , . . . {right arrow over (q)} _(k,1) , . . . {right arrow over (q)} _(k*,1)] and   (9)

Q ₂ =└I _(N) _(R)

J ^(N) ┘HS=[{right arrow over (q)} _(1,2), . . . {right arrow over (q)}_(k,2), . . . {right arrow over (q)}_(k*,2)]  (10)

Both {right arrow over (q)}_(k,1)=└I_(N) _(R)

(J^(T))^(N)┘{right arrow over (q)}_(k) and {right arrow over (q)}_(k,2)=└I_(N) _(R)

J^(N)┘{right arrow over (q)}_(k) are the receiver signature sequences corresponding to the previous and the next symbol periods and are used to handle the ISI. The (N+L−1)×(N+L−1)-dimensional matrix is defined as

$J_{N + L - 1} = {\begin{bmatrix} {\overset{->}{0}}_{({N + L - 2})}^{T} & 0 \\ I_{({N + L - 2})} & {\overset{->}{0}}_{({N + L - 2})} \end{bmatrix}.}$

For simplicity the subscript will be dropped from the J matrix notation. When the matrix J^(N) operates on a column vector, it downshifts the column by N chips filing the top of the column with N zeros. Assuming the clocks at the transmitter and receiver are fully synchronized, the received signals are first down converted to the baseband. The signals at the output of each receiver chip matched filter is sampled at the chip period intervals T_(c). The chip matched filter at the n_(r) ^(th) receiver has a total of (N+L−1) samples {right arrow over (r)}_(n) _(r) (ρ)=[r_(n) _(r) _(,1)(ρ) . . . r_(n) _(r) _(,(N+L−1))(ρ)]^(T) to be processed for the symbol period of ρ. The n_(r) ^(th) received signal matrix is given as R_(n) _(r) =└{right arrow over (r)}_(n) _(r) (1), . . . , {right arrow over (r)}_(n) _(r) (ρ), . . . {right arrow over (r)}_(n) _(r) (N^((x)))┘. The received matched filter containing all antenna elements at a symbol period is given by the vector {right arrow over (r)}(ρ)=[{right arrow over (r)}₁ ^(T)(ρ), . . . , {right arrow over (r)}_(n) _(r) ^(T)(ρ), . . . , {right arrow over (r)}_(N) _(R) ^(T)(ρ)]^(T) of size N_(R)(N+L−1) for ρ=1, . . . , N^((x))−1. The received signal vector over the symbol period, ρ, is given in terms of the transmitter vector {right arrow over (y)}(ρ) as:

$\begin{matrix} {{\overset{->}{r}(\rho)} = {{{Q_{e}\left( {I_{3} \otimes A} \right)}\begin{bmatrix} {\overset{->}{y}(\rho)} \\ {\overset{->}{y}\left( {\rho - 1} \right)} \\ {\overset{->}{y}\left( {\rho + 1} \right)} \end{bmatrix}} + {\overset{->}{n}(\rho)}}} & (11) \end{matrix}$

where

is the Kronecker product and the N_(R)(N+L−1) dimensional noise vector {right arrow over (n)}(ρ) has the noise covariance matrix E[{right arrow over (n)}(ρ){right arrow over (n)}^(H)(ρ)]=2σ²I_(N) _(R) _((N+L−1)) with the one dimensional noise variance

$\sigma^{2} = {\frac{N_{0}}{2}.}$

The N_(R)(N+L−1)×N^((x)) dimensional received signal matrix for the MIMO receiver is given as R=[{right arrow over (r)}(1), . . . , {right arrow over (r)}(ρ), . . . {right arrow over (r)}(N^((x)))]=[R₁ ^(T), . . . , R_(1t) _(r) ^(T), . . . R_(N) _(R) ^(T)]^(T).

The received signal vector {right arrow over (r)}(ρ) over the symbol period, ρ, is used to produce the size K* column vector {right arrow over (ŷ)}(ρ)=[{right arrow over (ŷ)}₁(ρ), . . . , {right arrow over (ŷ)}_(k)(ρ), . . . , {right arrow over (ŷ)}_(K*)(ρ)]^(T) as an estimate of the transmitted symbol vector {right arrow over (y)}(ρ) using {right arrow over (ŷ)}(ρ)=W^(H){right arrow over (r)}(ρ).

The N_(R)(N+L−1)×K* dimensional matrix w=[{right arrow over (w)}₁, . . . , {right arrow over (w)}_(k), . . . , {right arrow over (w)}_(k*)] has the MMSE linear equalizer despreading filter coefficients {right arrow over (w)}_(k) for k=1, . . . , K*. In order to ensure that {right arrow over (w)}_(k) ^(H){right arrow over (q)}=1 and the cross-correlations {right arrow over (w)}_(k) ^(H){right arrow over (q)}_(j) are minimized for j≠k, a normalized MMSE despreading filter coefficient vector is given by:

$\begin{matrix} {{\overset{->}{w}}_{k} = {\frac{C^{- 1}{\overset{->}{q}}_{k}}{{\overset{->}{q}}_{k}^{H}C^{- 1}{\overset{->}{q}}_{k}}\mspace{14mu} {with}}} & (12) \\ {C = {{{Q_{e}\left( {I_{3} \otimes A^{2}} \right)}Q_{e}^{H}} + {2\sigma^{2}I_{N_{R}{({N + L - 1})}}}}} & (13) \end{matrix}$

Where C=E[{right arrow over (r)}(ρ){right arrow over (r)}^(H)(ρ)] is the N_(R)(N+L−1)×N_(R)(N+L−1) dimensional covariance matrix of the received signal vector {right arrow over (r)}(ρ). The covariance matrix C, given in (13), can be iteratively calculated using:

C _(k) =C _(k−1) +E _(k) {right arrow over (q)} _(k) {right arrow over (q)} _(k) ^(H) +E _(k) {right arrow over (q)} _(k,1) {right arrow over (q)} _(k,1) ^(H) +E _(k) {right arrow over (q)} _(k,2) {right arrow over (q)} _(k,2) ^(H)   (14)

for k=1, . . . , K* when using C₀=2ρ²I_(N) _(R) _((N+L−1)) and C=C_(K*).

At the output of each receiver, the mean-square-error ε_(k)=E[|y_(k)(ρ)−ŷ_(k)(ρ)|²] between the transmitted signal y_(k)(ρ) and the estimated signal ŷ_(k)(ρ) is given as

$\gamma_{k} = \frac{1 - ɛ_{k}}{ɛ_{k}}$

for k=1, . . . , K. Where

$ɛ_{k} = {{1 - {E_{k}{\overset{->}{q}}_{k}^{H}C^{- 1}{\overset{->}{q}}_{k}}} = {\frac{1}{1 + \gamma_{k}} = {1 - \lambda_{k}}}}$

is the signal-to-noise-ratio (SNR) at the output of each receiver and λ_(k) is the system value given as:

$\begin{matrix} {\lambda_{k} = {{1 - ɛ_{k}} = {\frac{\gamma_{k}}{1 + \gamma_{k}} = {E_{k}{\overset{->}{q}}_{k}^{H}C^{- 1}{{\overset{->}{q}}_{k}.}}}}} & (15) \end{matrix}$

Now that the system value has been defined, the method of determining the weak channels in accordance with the system value to improve the overall system performance shall be discussed in more detail.

The main objective of the MIMO downlink sum capacity optimization is to minimize the total MMSE ε_(T)=Σ_(k=1) ^(k*)ε_(k) using the total MMSE minimization criterion based on the Lagrangian dual objective function:

$\begin{matrix} {{L\left( {ɛ_{k},E_{k},\lambda} \right)} = {{\sum\limits_{k = 1}^{K^{*}}\; ɛ_{k}} + {\lambda \left( {{\sum\limits_{k = 1}^{K^{*}}E_{k}} - E_{T}} \right)}}} & (16) \end{matrix}$

with the Lagrangian multiplier λ. The objective function maximizes the total rate B_(T)=Σ_(k=1) ^(k*)b_(p) _(k) where b_(p) _(k) is the number of bits allocated to each spreading sequence symbol for k=1, . . . , K*. Once the energies are allocated, the corresponding rates can be determined. If the terms ε_(k) and E_(k) are expressed as functions of the rate b_(p) _(k) the optimization, given in (16), provides solutions for E_(k) and λ subject to the energy constraint Σ_(k=1) ^(k*)E_(k)≦E_(T). The mean square error energy ε_(k) is given in terms of the system values λ_(k) as ε_(k)=1−λ_(k). The energy E_(k) in (16) is related to the system value λ_(k) by means of

$E_{k} = \frac{\lambda_{k}}{{\overset{\rightarrow}{q}}_{k}^{H}C^{- 1}{\overset{\rightarrow}{q}}_{k}}$

as identified in (15). The bit rates b_(p) _(k) to be transmitted over each channel is related to the SNR

$\gamma_{k} = \frac{\lambda_{k}}{1 - \lambda_{k}}$

in terms of

$b_{p_{k}} = {\log_{2}\left( {1 + \frac{\gamma_{k}}{\Gamma}} \right)}$

where Γ is the gap value. The target SNR γ*(b_(p) _(k) ) is given by:

$\begin{matrix} {{{\gamma_{k}^{*}\left( b_{p_{k}} \right)} = {\Gamma \left( {2^{b_{p_{k}}} - 1} \right)}},} & (17) \end{matrix}$

and the target system value λ*_(k) required to transmit b_(p) _(k) bits per symbol is given by:

$\begin{matrix} {{\lambda_{k}^{*}\left( b_{p_{k}} \right)} = {\frac{\Gamma \left( {2^{b_{p_{k}}} - 1} \right)}{1 + {\Gamma \left( {2^{b_{p_{k}}} - 1} \right)}}.}} & (18) \end{matrix}$

As the optimization parameters are all expressed in terms of the system values, in this embodiment of the invention the system values can be calculated using λ_(k)=E_(k){right arrow over (q)}_(k) ^(H)C⁻¹{right arrow over (q)}_(k) given in (15). However, as will be appreciated in other embodiments, where a SIC scheme is utilised, a different system value determination will be used. In accordance with this embodiment of the invention, the mean system value will therefore be:

$\begin{matrix} {\lambda_{mean} = {\frac{\lambda_{T}}{K^{*}} = \frac{\sum\limits_{k = 1}^{K^{*}}\lambda_{k}}{K^{*}}}} & (19) \end{matrix}$

where the total system value λ_(T) has its maximum value when

$E_{k} = \frac{E_{T}}{K^{*}}$

for K=1, . . . , K*. For the MMSE receivers with and without the proposed SIC scheme, the total system capacity is:

$\begin{matrix} {C_{T} = {{\sum\limits_{k = 1}^{K^{*}}{\log_{2}\left( {1 + \frac{\lambda_{k}}{\Gamma \left( {1 - \lambda_{k}} \right)}} \right)}} = {K^{*}{\log_{2}\left( {1 + \frac{\lambda_{mean}}{\Gamma \left( {1 - \lambda_{mean}} \right)}} \right)}}}} & (20) \end{matrix}$

where Γ is the gap value. In (20), the multiplication of the total channel number with the capacity corresponding to the mean system value λ_(mean) gives a very close approximation to the total capacity.

In this first embodiment of the invention an iterative bit loading method is produced to allocate discrete rates without the need for a prior energy allocation. This iterative method operates with a given total energy E_(T) when using a MIMO system without the proposed SIC scheme by iterating for a given total number I_(max). However, when used with a SIC scheme, a similar approach is applied. The system parameters are considered to be N_(R), N_(T), σ², K*, L, H. The signature sequences S=[s₁. . . {right arrow over (s)}_(K)] will be available for the purpose of constructing the matrices Q, Q₁, and Q₂. At the start, each iterative method will produce the sequences {right arrow over (q)}_(k), {right arrow over (q)}_(k,1) and {right arrow over (q)}_(k,2) using {right arrow over (q)}_(k)=[Q]_(k), {right arrow over (q)}_(k,1)=[Q₁]_(k), and {right arrow over (q)}_(k,2)=[Q₂]_(k) to generate the initial system values λ_(k) for k=1, . . . , , K.

The multipath channels cause the system values λ_(k) to have randomly varying amplitudes. This may lead to the inclusion of some of the spreading sequences as bad channels which may degrade the total rate by excluding the good channels which can otherwise be used to transmit higher data rates. A signature sequence selection scheme based on the use of the system values may be incorporated to identify the weak signature sequences to exclude them.

The iterative method will select a sub set of the sequences from S to identify the optimum number Ks of signature sequences and the order in which they will appear. The method varies the total number of sequences from K=K to K=1. The method initially takes a total of K=K spreading sequences and calculates all the associated system values by allocating the total available energy equally to each spreading sequence. The system values and corresponding spreading sequences are ordered to have the system values in an ascending order. The mean system value and also the signature sequence set are recorded for the corresponding number of spreading sequences. The spreading sequence corresponding to the minimum system value is removed and the number of spreading sequences is reduced using K=K−1 and the corresponding system values, the mean system value calculations and signature sequence ordering and removal processes are repeated for the reduced number of spreading sequences by varying the number of spreading sequences from K=K to K=1. For varying number of spreading sequences, from K=1 to K=K, the mean system values are used to calculate the data rate b_(p) to be transmitted over each spreading sequence if all the spreading sequences use the same transmission rate. The number of spreading sequences which maximizes the multiplication of the data rate b_(p) and the corresponding number of spreading sequence is chosen to be the optimum number K* of spreading sequences. The recorded signature sequence set corresponding to the optimum number of signature sequences is chosen to be the ordered set of signature sequences. The data rate b_(p) corresponding to the optimum number of spreading sequences and the next data rate b_(p+1) that is available in the discrete data rates set of {b_(p): p=1, . . . P} and the corresponding target system values will be used to determine the number of channels K*−m in that will be used to transmit data at the rate b_(p) bits per symbol and the number of channels m that will used to transmit data at the rate b_(p+1) by considering the mean system value corresponding to the optimum number of signature sequences. After having determined the data rates b_(p) and b_(p+1) and the number of spreading sequences K*−m and m the energies required to transmit the data at the required rates b_(p) and b_(p+1) are calculated iteratively for a given total energy constraint Σ_(k=1) ^(K*)E_(k)≦E_(T).

The details of determining the optimum number of sequences and the order they appear and also the data rate and energy allocations are given next.

The method will dynamically adjust the energies E_(k) for k=1, . . . , K* and also K* by starting at K* =K to return the allocated energies and the numbers of the ordered signature sequences as the elements of the size IC vector k* vector {right arrow over (k)}_(order). The vector {right arrow over (k)}_(order) will be initialized using [{right arrow over (k)}_(order)]_(k)=k for k=1, . . . , K*. At the start a set of system values λ_(k), given in (15), for k=1, . . . , K* will be produced as the elements of the size K* vector {right arrow over (λ)}=└λ₁, . . . λ_(K*)┘ using

$E_{k} = \frac{E_{T}}{K^{*}}$

and C⁻¹, given in (13). The vector {right arrow over (λ)} will then be used to reorganize the match filter sequences using {right arrow over (q)}_(k)=q_(a) _(k) , {right arrow over (q)}_(k,1)={right arrow over (q)}_(a) _(k) _(,1) and {right arrow over (q)}_(k,2)={right arrow over (q)}_(a) _(k) _(,2) and the vector {right arrow over (k)}_(order) using [{right arrow over (k)}_(order)]_(k)=[{right arrow over (k)}_(order)]_(a) _(k) for k=1, . . . , K* where a_(k) is the index number of the k^(th) smallest element of {right arrow over (λ)}.

At the start of each iteration, a set of system values λ_(k) for k=1, . . . , K*, given in (15) will be constructed by using the variables N, L, N_(R), σ² and an updated set of energies E_(k) and the vectors {right arrow over (q)}_(k), {right arrow over (q)}_(k,1), {right arrow over (q)}_(k,2) and {right arrow over (k)}_(order) and also using C⁻¹, given in (13). Within each iteration loop the system values, given in {right arrow over (λ)}=└λ₁, . . . λ_(K*)┘ will be reordered in an ascending order. As required the optimum number K* and the corresponding energies will be updated. The index number of the K* smallest element of {right arrow over (λ)} will be used to re-order the sequences {right arrow over (q)}_(k), {right arrow over (q)}_(k,1) and {right arrow over (q)}_(k,2), the allocated energies E_(k) and the elements of the vector {right arrow over (k)}_(order). The iterative algorithms will reduce the number of sequences {right arrow over (q)}_(k), {right arrow over (q)}_(k,1), {right arrow over (q)}_(k,2) and the energies and also the size of vector k_(order) when required as the iterations progress. Upon reaching a given number of iterations, the iterative loop will terminate otherwise the iteration will be repeated by starting at the beginning.

Upon completing the iterations, the data rates b_(p) _(k) , the energies and also a set of re-sequenced signature sequences {right arrow over (s)}_(k) for k=1, . . . , K* are returned. The resultant energies E_(k) and the matrix C⁻¹ involved in the construction of the system values λ_(k) will be available to calculate the MMSE filter coefficients {right arrow over (w)}_(k) for k=1, . . . , K* using (12). The total system value, λ_(T), and the mean system value, λ_(mean), and also the sum capacity for each iterative method can be calculated using (19) and (20) respectively.

This approach for maximizing the total capacity by allocating discrete rates first and finding the optimum number of sequences without the need to allocate energies prior to rates shall now be discussed in more detail.

With the target system values identified in (18) in terms of the available discrete rates, a margin adaptive (MA) loading algorithm will be considered initially for either an equal SNR loading to transmit the same data rate over each channel such that the total transmission rate is R_(T)=Kb_(p) _(k) . The equal SNR loading scheme operates under the same energy constraint that Σ_(k=1) ^(K*)E_(k)≦E_(T). The equal energy loading is the adapted strategy for the current HSDPA standards and it produces varying SNRs at the receivers which makes it simpler to implement than the equal SNR loading scheme. The equal SNR loading requires adjustment of the transmission energies to achieve a fixed SNR at each receiver to deliver a higher total bit rate.

The numbers of sequences K*_(SNR) for the equal SNR case will be optimized to maximize the total rate R_(T,SNR). The algorithm will initially set the temporary optimum number K_(opt)=K and will use the vectors {right arrow over (q)}_(k), {right arrow over (q)}_(k,1) and {right arrow over (q)}_(k,2) for k=1, . . . , K_(opt) and {right arrow over (k)}_(order) and also the parameters E_(T), N_(T), N_(R), σ², K, L. A size K vector with the initial values {right arrow over (b)}_(mean)={right arrow over (0)}_(K) and an N_(T)K×K dimensional matrix K_(squences) with the initial values K_(squences)=0_(K×K) will be generated as part of the following iterative process.

1.

$\left\lbrack K_{sequences} \right\rbrack_{k,K_{opt}} = \left\lbrack {\overset{\rightarrow}{k}}_{order} \right\rbrack_{k}$

for k=1, . . . K_(opt). By setting

$E_{k} = \frac{E_{T}}{K_{opt}}$

the system values λ_(k) are produced for k=1, . . . , K_(opt) using (15) for the system under consideration without SIC. The K_(opt) ^(th) elements of two size K vectors are produced by setting

$\left\lbrack {\overset{\rightarrow}{\lambda}}_{mean} \right\rbrack_{k_{opt}^{/}} = {\frac{\sum\limits_{k}^{K_{opt}}\lambda_{k}}{K_{opt}}\mspace{14mu} {{and}\mspace{14mu}\left\lbrack {\overset{\rightarrow}{\lambda}}_{\min} \right\rbrack}_{k_{opt}}}$

equal to the minimum of the system values. The size K_(opt) system value vector {right arrow over (λ)} is constructed using {right arrow over (λ)}=└λ₁. . . , λ_(K) _(opt) ┘^(T).

2. Next the term a_(k) is used as the index number of the k^(th) smallest element of the system value vector {right arrow over (λ)}. The index number a_(k) is employed to re-sequence the vectors {right arrow over (q)}_(k), {right arrow over (q)}_(k,1) and {right arrow over (q)}_(k,2) and to reorder the elements of the vector {right arrow over (k)}_(order) using {right arrow over (q)}_(k)={right arrow over (q)}_(a) _(k) , {right arrow over (q)}_(k,1)={right arrow over (q)}_(a) _(k) _(,1) and {right arrow over (q)}_(k,2)={right arrow over (q)}_(a) _(k) _(,2) and [{right arrow over (k)}_(order)]_(k)=[{right arrow over (k)}_(order)]_(a) _(k) for k=1, . . . , K_(opt). The total number, K_(opt), of sequences {right arrow over (q)}_(k), {right arrow over (q)}_(k,1), {right arrow over (q)}_(k,2) and the size, K_(opt), of the vector {right arrow over (k)}_(order) are reduced from K_(opt)+1 to K_(opt) using {right arrow over (q)}_(k){right arrow over (q)}_(k+1), {right arrow over (q)}_(k,1)={right arrow over (q)}_((k+1),1) and {right arrow over (q)}_(k,2)={right arrow over (q)}_((k+1),2) and also [{right arrow over (k)}_(order)]_(k)=[{right arrow over (k)}_(order)]_(k+1) for k=1, . . . , K_(opt).

3. By setting K=K_(opt)−1 the steps are repeated starting at step 1 if K_(opt)≧1 otherwise the following steps are run.

4. The k^(th) element of the vector {right arrow over (b)}_(mean) is set to be [{right arrow over (b)}_(mean)]_(k)=b_(p) _(k) for k=1, . . . , K where the discrete bit value b_(p) _(k) is chosen to satisfy the inequalities:

$\begin{matrix} {{\lambda^{*}\left( b_{p_{k}} \right)} \leq \left\lbrack {\overset{\rightarrow}{\lambda}}_{mean} \right\rbrack_{k} < {{\lambda^{*}\left( b_{p_{k} + 1} \right)}.}} & (21) \end{matrix}$

The optimum number K*_(SNR) of the transmission sequences for the equal SNR loading system is given by

$K_{SNR}^{*} = {\arg \left( {\max\limits_{1 \leq k \leq K}\left( {k\left\lbrack {\overset{\rightarrow}{b}}_{mean} \right\rbrack}_{k} \right)} \right)}$

where K_(SNR) is the integer number maximizing k└{right arrow over (b)}_(mean)┘_(k) for k=1, . . . , K. The total rate is R_(T,SNR)=K*_(SNR)b_(p) _(k) where b_(p) _(k) =[{right arrow over (b)}_(mean)]_(K*) _(SNR) . The total rate can be further improved by loading a certain number of channels in with the next available rate b_(p) _(k) ₊₁ and transmitting a total number of bits per symbol using:

R _(T,SNR)=(K* _(SNR) −m)b _(p) _(k) +mb _(p) _(k) ₊₁   (22)

for the integer m which satisfies the following inequalities:

(K* _(SNR) −m)λ*(b _(p) _(k) )+mλ*(b _(p) _(k) ₊₁)≦K* _(SNR)[{right arrow over (λ)}_(mean)]_(K*) _(SNR) .   (23)

Thus R_(T)=(K*_(SNR)−m)b_(p) _(k) +mb_(p) _(k) ₊₁ can be determined prior to the energy allocation.

5. The signature sequences

$S^{({SNR})} = \left\lbrack {{\overset{\rightarrow}{s}}_{1}^{({SNR})},\ldots \mspace{14mu},{\overset{\rightarrow}{s}}_{K_{SNR}^{*}}^{({SNR})}} \right\rbrack$

for the equal SNR loading scheme are constructed using the original sequence matrix S=[{right arrow over (s)}₁ . . . {right arrow over (s)}_(K)] and setting {right arrow over (s)}_(k) ^((SNR))={right arrow over (s)}_(a) _(k) where a_(k)=└K_(squences)┘_(k,K*) _(SNR) for k=1, . . . , K*_(SNR).

An iterative energy adjustment method is presented below as the proposed method maximizing the total rate R_(T,SNR)=(K*_(SNR)−m)b_(p) _(k) +mb_(p) _(k) ₊₁ relies on maintaining two specific SNRs at the output of despreading units.

For the optimum number of codes K* and the allocated bit rates

b_(p_(k))  or  b_(p_(k) + 1)

for each channel, the transmission energies E_(k) for k=1, . . . , K*, can be iteratively calculated for a MIMO system without the SIC scheme. It is assumed that the matched filter sequences {right arrow over (q)}_(k), {right arrow over (q)}_(k,1) and {right arrow over (q)}_(k,2) for k=1, . . . , K* are available for the ordered sequences. For the systems without the SIC scheme, the transmission energies can be calculated iteratively as follows:

$\begin{matrix} {{E_{k,i} = {{\frac{\lambda_{k}^{*}}{{\overset{\rightarrow}{q}}_{k}^{H}C_{i - 1}^{- 1}{\overset{\rightarrow}{q}}_{k}}\mspace{14mu} {for}\mspace{14mu} k} = 1}},\ldots \mspace{14mu},K^{*}} & (24) \end{matrix}$

by using (15) and the target system values λ*_(k) given in (18) for the chosen rates b_(p) _(k) and

b_(p_(k) + 1).

The term i is the iteration nubmer and the term C_(i−1) ⁻¹ in (24) is calculated using (13) and E_(k,(i−1)) for k=1, . . . , K by initially allocating

$E_{k,0} = \frac{E_{T}}{K^{*}}$

for all channels. This iteration continues until the energies converge to fixed values or a maximum number of iterations, I_(max), is reached.

A second embodiment of the invention shall now be described in which a SIC-based receiver is utilised. The features of the first and second embodiemtns of the invention are very similar and as such those features of the second embodiment of the invention to that are the same as the first embodiment of the invention shall not be described in detail.

FIG. 2 illustrates the system of the second embodiment of the invention in which a SIC-based receiver is utilised. Like in FIG. 1, the receiver 300 comprises a plurality of MIMO receivers 301 a, 301 b, . . . 301N_(R). The receiver chip matched filter 302 down converts the received radio frequency signals and filters the down converted signals to produce the sampled signal vectors

${{\overset{\rightarrow}{r}}_{n_{r}}(\rho)} = \left\lbrack {\begin{matrix} r_{n_{r},1} & \ldots & r_{n_{r},{({N + L - 1})}} \end{matrix}(\rho)} \right\rbrack^{T}$

to be processed for the symbol period of ρ at the output of each receiver antenna. The received vector concatenator unit 303 concatenates signal vectors

${{\overset{\rightarrow}{r}}_{n_{r}}(\rho)} = \left\lbrack {\begin{matrix} r_{n_{r},1} & \ldots & r_{n_{r},{({N + L - 1})}} \end{matrix}(\rho)} \right\rbrack^{T}$

to produce the received matched filtered signal samples corresponding to all antenna elements at a symbol period {right arrow over (r)}(ρ)=[{right arrow over (r)}₁ ^(T)(ρ), . . . , {right arrow over (r)}_(n) _(r) ^(T)(ρ), . . . , {right arrow over (r)}_(N) _(R) ^(T)(ρ)]^(T) for ρ=1, . . . , N^((x))−1. The received signal matrix generator 304 produces the received signal matrix R_(K*)=[{right arrow over (r)}(1), . . . , {right arrow over (r)}(N^((x)))]. The successive interference cancellation (SIC) receiver consisting of units 305, 306 and 308 is an iterative receiver producing the reduced data matrix R_(k−1) iteratively for k=1 . . . , K* using R_(k−1)=R_(k)−√{square root over (E_(k))}Φ_(k) starting with the matrix R_(K*), the combined SIC receiver consisting of units 305, 306 and 308 uses the despreading unit 306 to produce the despread signal vector of

${\overset{\hat{\rightarrow}}{x}}_{k}^{T} = {{\overset{\rightarrow}{w}}_{k}^{H}R_{k}}$

for k=K*,(K*−1), . . . 1. The decision unit 308 uses the despread signal to produce an estimate of the corresponding transmitted bit stream {right arrow over (û)}_(k) and also the transmitted symbol vector {right arrow over (x)}_(k,D). The detected data stream {right arrow over (x)}_(k,D) at the output of the decision unit 308 is used by the contribution estimator unit 305 to produce the contributions matrix Φ_(k) for use in the reduced data matrix R_(k−1) calculation when using R_(k−1)=R_(k)−√{square root over (E_(k))}Φ. The detected data stream is then ordered by the data ordering unit 309 to produce the detected data sequence. The symbol matrix generation unit 307 uses the estimated symbols vectors {right arrow over ({circumflex over (x)}_(k) to produce the received symbols matrix {right arrow over (X)}.

When a SIC-based receiver is utilised the definition and determination of the system value λ_(k) also change. The determination of the system value λ_(k) in accordance with a system utilising a SIC-based receiver is therefore set out below.

Use of a successive interference cancellation (SIC) scheme has many benefits including improved received signal-to-noise ratio for a given total transmission energy E_(T) requiring less energy E_(k) per channel for k=1, . . . , K* to achieve a given bit rate.

An SIC scheme, which operates as shown in FIG. 2, constructs a unique covariance matrix C_(k) for k=1, . . . , K* using the iterative covariance matrix relationship given in (14) and calculates C_(k) ⁻¹ for use in the detection process.

The operation of the SIC receiver depends on the design of the MMSE linear equalizer coefficients {right arrow over (w)}_(k) which are produced by re-formulating (12) as follows for k=1, . . . , K*:

$\begin{matrix} {{\overset{\rightarrow}{w}}_{k} = {\frac{C_{k}^{- 1}{\overset{\rightarrow}{q}}_{k}}{{\overset{\rightarrow}{q}}_{k}^{H}C_{k}^{- 1}{\overset{\rightarrow}{q}}_{k}}.}} & (25) \end{matrix}$

In the SIC receiver implementation, the received signal vectors {right arrow over (r)}(ρ), given in (11), are collected for ρ=1, . . . , N^((x)) to form the received signal matrix R=[{right arrow over (r)}(1), . . . ,{right arrow over (r)}(N^((x)))] and the receiver is operated by setting R_(K*)=R to produce a N_(R)(N+L−1)×N^((x)) dimensional reduced data matrix R_(k−1) iteratively using R_(k−1)R_(k)−√{square root over (E_(k))}Φ_(k) for k=K*,(K*−1), . . . , 1. The N_(R)(N+L−1)×N^((x)) dimensional matrix Φ_(k) is given by Φ_(k)={right arrow over (q)}_(k){right arrow over (x)}_(k,D) ^(T)+{right arrow over (q)}_(k,1){right arrow over (x)}_(k,D1) ^(T)+{right arrow over (q)}_(k,2){right arrow over (x)}_(k,D1) ^(T). The size N^((x)) column vector {right arrow over (x)}_(k,D) is the detected data stream and {right arrow over (x)}_(k,D1)=J_(N) _((x)) {right arrow over (x)}_(k,D) and {right arrow over (x)}_(k,D1)=J_(N) _((x)) ^(T){right arrow over (x)}_(k,D) are the row vectors containing ISI symbols received in the previous and the next symbol periods respectively. The contribution of the detected data stream {right arrow over (x)}_(k,D) to the reduced to signal matrix R_(k) for channel k is estimated using √{square root over (E_(k))}Φ_(k). The estimated symbol vector {right arrow over (x)}_(k,D) is generated by using each MMSE despreading vector {right arrow over (w)}_(k) which is calculated using (25) to yield a despread signal vector of

${\hat{\overset{\rightarrow}{x}}}_{k}^{T} = {{\overset{\rightarrow}{w}}_{k}^{H}R_{k}}$

and also an estimate of the corresponding transmitted bit stream {right arrow over ({circumflex over (û)}_(k). The decoded bit vectors {right arrow over (u)}_(k) are re-coded at the receiver and re-modulated to regenerate the transmitted symbol vector {right arrow over (x)}_(k,D) at the output of the decision device. For each channel k, the receiver then re-spreads the estimated data symbols {right arrow over (x)}_(k,D) and the re-spread data stream is then passed through the channel under consideration to produce Φ_(k). Once R_(k−1) is generated, the received symbol vector for each channel is then iteratively generated using

${\overset{\hat{\rightarrow}}{x}}_{k - 1}^{T} = {{\overset{\rightarrow}{w}}_{k - 1}^{H}R_{k - 1}}$

until all the transmitted data streams are estimated for k=K*, . . . , 1. The SIC based MMSE receiver will then have the following modified system values for k=1 , . ., K* as:

λ_(k) =E _(k) {right arrow over (q)} _(k) ^(H) C _(k) ⁻¹ {right arrow over (q)} _(k)   (26)

and the best performance can be achieved for the SIC based receivers if the system values are ordered in an ascending order.

Use of an iterative covariance matrix inversion method with the SIC receiver further reduces the receiver detection complexity. The iterative matrix inversion method is also used to produce the SIC system values λ_(k), k=1, . . . , K* for use in the maximization of the summation of the discrete transmission rate b_(T)Σ_(k=1) ^(K*)b_(p) _(k) where b_(p) _(k) is the discrete number of bits allocated to each spreading sequence symbol for k=1, . . . , K*. The SIC system values λ_(k) will also be used for the optimum allocation of energies subject to the energy constraint Σ_(k=1) ^(K*)E_(k)≦E_(T).

The main complexity issue for a successive interference cancellation receiver is the number of matrix inversions C_(k) ⁻¹ involved in calculating the despreader {right arrow over (w)}_(k) given in (25) and the system value λ_(k) given in (26) for k=1, . . . , K*. This motivates the formulation of an iterative covariance matrix inversion. The objective is to eliminate the covariance matrix inversions required for the despreader and the system value calculations such that the inverse matrix C_(k) ⁻¹ is a function of C_(k−1) ⁻¹. By reorganizing (14) as C_(k)=D_(k)E_(k){right arrow over (q)}_(k){right arrow over (q)}_(k) ^(H) where D_(k)=C_(k−1)+E_(k){right arrow over (q)}_(k,1){right arrow over (q)}_(k,1) ^(H)+E_(k){right arrow over (q)}_(k,2){right arrow over (q)}_(k,2) ^(H) and using the matrix inversion lemma (A+UBV)⁻¹A⁻¹−A⁻¹U(B⁻¹+VA⁻¹U)VA⁻¹ the inverse matrices C_(k) ⁻¹ and D_(k) ⁻¹ can be calculated as:

D _(k) ⁻¹ =C _(k−1) ⁻¹−(ζ₁ ²ζ₂|ξ₅|²+ζ₁)Z ₁

−ζ₂Z₂+ζ₁ζ₂(ξ₅ Z ₃+ξ*₅ Z ₃ ^(H)) and   (27)

C _(k) ⁻¹ =D _(k) ⁻¹ ζZ ₄   (28)

where we define the distance vectors {right arrow over (d)}, {right arrow over (d)}₁, {right arrow over (d)}₂, and {right arrow over (d)}₃ as:

{right arrow over (d)}=C _(k−1) ⁻¹ {right arrow over (q)} _(k) , {right arrow over (d)} ₁ =C _(k−1) ⁻¹ {right arrow over (q)} _(k,1) , {right arrow over (d)} ₂ =C _(k−1) ⁻¹ {right arrow over (q)} _(k,2) , {right arrow over (d)} ₃ =D _(k) ⁻¹ {right arrow over (q)} _(k).   (29)

The weighting functions ξ, ξ₁, ξ₂, ξ₃, ξ₄, ξ₅, and ξ₆ are produced using:

ξ={right arrow over (q)} _(k) ^(H) {right arrow over (d)}, ξ ₁ ={right arrow over (q)} _(k,1) ^(H) {right arrow over (d)} ₁, ξ₂ ={right arrow over (q)} _(k,2) ^(H) {right arrow over (d)} ₂,

ξ₃ ={right arrow over (q)} _(k) ^(H) {right arrow over (d)} ₁, ξ₄ ={right arrow over (q)} _(k) ^(H) {right arrow over (d)} ₂, ξ₅ ={right arrow over (q)} _(k,1) ^(H) {right arrow over (d)} ₂, ξ₆=Real(ξ₃ξ*₄ξ₅)  (30)

The weighted energy terms ζ, ζ₁ and ζ₂ are given as:

$\begin{matrix} {{\zeta = \frac{E_{k}}{1 + {E_{k}\begin{pmatrix} {\xi - \frac{E_{k}{\xi_{3}}^{2}}{1 + {E_{k}\xi_{l}}} -} \\ \frac{E_{k}\left( {{\xi_{4}}^{2} - {2\frac{E_{k}}{1 + {E_{k}\xi_{1}}}\xi_{6}} + {\left( \frac{E_{k}}{1 + {E_{k}\xi_{1}}} \right)^{2}{\xi_{5}}^{2}{\xi_{3}}^{2}}} \right)}{1 + {E_{k}\left( {\xi_{2} - {\frac{E_{k}}{1 + {E_{k}\xi_{1}}}{\xi_{5}}^{2}}} \right)}} \end{pmatrix}}}},\mspace{20mu} {\zeta_{1} = \frac{E_{k}}{1 + {E_{k}\xi_{1}}}},{\zeta_{2} = {\frac{E_{k}}{1 + {E_{k}\left( {\xi_{2} - {\zeta_{1}{\xi_{5}}^{2}}} \right)}}.}}} & (31) \end{matrix}$

We further define the interim matrices Z₁, Z₂, Z₃ and Z₄ as follows:

Z ₁ ={right arrow over (d)} ₁ {right arrow over (d)} ₁ ^(H) , Z ₂ ={right arrow over (d)} ₂ {right arrow over (d)} ₂ ^(H) , Z ₃ ={right arrow over (d)} ₁ {right arrow over (d)} ₂ ^(H) , Z ₄ ={right arrow over (d)} ₃ {right arrow over (d)} ₃ ^(H).   (32)

For a given energy allocation E_(k) for k=1, . . . , K* and a given set of M1MO system parameters with {right arrow over (q)}_(k), {right arrow over (q)}_(k,1) and {right arrow over (q)}_(k,2), E_(k), σ² and also

${C_{0}^{- 1} = {\frac{1}{2\sigma^{2}}I_{N_{R}{({N + L - 1})}}}},$

the matrix C_(k) ⁻¹ and the system values λ_(k) are constructed as follows starting at k=1.

1. The distance vectors, {right arrow over (d)}, {right arrow over (d)}₁ and {right arrow over (d)}₂ are produced using (29). The weighting factors ξ, ξ₁, ξ₂, ξ₃, ξ₄, ξ₅, and ξ₆, given in (30), are calculated to produce the weighted energy terms ζ, ζ₁, and ζ₂ using (31) and the allocated energy E_(k) for k=1, . . . , K*. The interim matrices Z₁, Z₂ and Z₃, given in (32), are calculated to construct D_(k) ⁻¹ employing (27).

2. The distance vector {right arrow over (d)}₃ and the corresponding matrix Z₄ , given by (29) and (32), are used to construct C_(k) ⁻¹ given in (28).

3. The system value is obtained using λ_(k)=E_(k){right arrow over (q)}_(k) ^(H)C_(k−1) ⁻¹{right arrow over (q)}_(k).

4. Stop the algorithm if k=K* . Otherwise by setting k=k +1, the steps are repeated starting at step 1.

The system value λ_(k)given in (26) is reorganized using (28) to simplify the signal to noise ratio γ_(k) at the output of the k^(th) SIC receiver to the following form:

$\begin{matrix} {\gamma_{k} = {\frac{\lambda_{k}}{1 - \lambda_{k}} = {E_{k}{\overset{\rightarrow}{q}}_{k}^{H}D_{k}^{- 1}{\overset{\rightarrow}{q}}_{k}}}} & (33) \end{matrix}$

using the relationships given in (29), (30), (31) and (32). The proposed SIC-based iterative method calculates C_(k) ⁻¹ starting with the first channel k=1 using (27) and (28) and C_(k−1) ⁻¹ which is constructed in the previous iteration starting at

$C_{0}^{- 1} = {\frac{1}{2\sigma^{2}}{I_{N_{R}{({N + L - 1})}}.}}$

This iterative covariance matrix inversion method will be used to produce the signal-to-noise ratio γ_(k) and the system values λ_(k) for k=1, . . . , K* which will be ordered in an ascending order to maximize the SIC based HSDPA downlink sum-capacity performance.

The energy of the k^(th) channel, E_(k,i), which is updated using (24) and C_(i−1) ⁻¹ which needs to be updated using energies of all K channels at (i−1)^(th) iteration. This motivates the formulation of an iterative energy allocation E_(k,i) that only depends on E_(k,1−1) such that the covariance matrix inverse C_(k) ⁻¹ only needs to be updated once per channel using E_(k) .

A method for calculating the energies iteratively E_(k), without the need to invert any matrix per energy iteration, according to an alternative embodiment of the invention is set-out below.

By reorganizing (33) as follows:

$\begin{matrix} {E_{k,i} = \frac{\gamma_{k}^{*}}{{\overset{\rightarrow}{q}}_{k}^{H}D_{k,{({i - 1})}}^{- 1}{\overset{\rightarrow}{q}}_{k}}} & (36) \end{matrix}$

to produce E_(k,i) in terms of E_(k,1−1) and the parameters constructed from C_(k−1) ⁻¹ and {right arrow over (q)}_(k), {right arrow over (q)}_(k,1), and {right arrow over (q)}_(k,2). For this purpose the term {right arrow over (q)}_(k)q_(k)D_(k) ⁻¹{right arrow over (q)}_(k) given in (34) is simplified using (27) to reformulate (34) as follows:

$\begin{matrix} {E_{k,i} = \frac{\gamma_{k}^{*}}{\begin{matrix} {\xi - \frac{E_{k,{({i - 1})}}{\xi_{3}}^{2}}{1 + {E_{k,{({i - 1})}}\xi_{1}}} -} \\ \frac{E_{k,{({i - 1})}}\left( {{\xi_{4}}^{2} - {2\frac{E_{k,{({i - 1})}}}{1 + {E_{k,{({i - 1})}}\xi_{1}}}\xi_{6}} + {\left( \frac{E_{k,{({i - 1})}}}{1 + {E_{k,{({i - 1})}}\xi_{1}}} \right)^{2}{\xi_{5}}^{2}{\xi_{3}}^{2}}} \right)}{1 + {E_{k}\left( {\xi_{2} - {\frac{E_{k,{({i - 1})}}}{1 + {E_{k,{({i - 1})}}\xi_{1}}}{\xi_{5}}^{2}}} \right)}} \end{matrix}}} & (35) \end{matrix}$

where the weighting factors ξ, ξ₁, ξ₂, ξ₃, ξ₄, ξ₅, and ξ₆ are constructed from C_(k−1) ⁻¹ and {right arrow over (q)}_(k), {right arrow over (q)}_(k,1) and {right arrow over (q)}_(k,2) using (30) and the distance vectors, {right arrow over (d)}, {right arrow over (d)}₁ and {right arrow over (d)}₂ given in (29) and by setting

$C_{0}^{- 1} = {\frac{1}{2\sigma^{2}}I_{N_{R}{({N + L - 1})}}}$

and the starting channel number to be k=1. This iterative energy calculation requires the use of the target SNR values

γ^(*)(b_(p_(k)))  and  γ^(*)(b_(p_(k) + 1))

from (17) for the desired transmission rates b_(p) _(k) and b_(p) _(k) ₊₁. The initial value for the energy E_(k) is set to be

$E_{k} = \frac{E_{T}}{K^{*}}$

and then it is iteratively updated using (35) for the target SNR γ*_(k) corresponding to the chosen transmission rate b_(p) _(k) for channel k. The iterations continue until the energy converges to a fixed value or a given number of iteration number I_(max) is reached. Once the energy E_(k) is produced, the construction of in terms of C_(k) ⁻¹ and E_(k,i) requires the interim matrices Z₁, Z₂ and Z₃ which are calculated using (32) to construct D_(k) ⁻¹ using (27) and then to produce {right arrow over (d)}₃=D_(k) ⁻¹{right arrow over (q)}_(k) using (29) and also Z₄ using (32). The weighted energy term ζ is next calculated using

$\zeta = {\frac{E_{k}}{1 + \gamma_{k}^{*}}.}$

Using the resultant D_(k) ⁻¹, Z₄ and ζ the inverse matrix C_(k) ⁻¹ is constructed using (28). This process is repeated for each channel until all the energies and inverses of the covariance matrices are produced for all the channels for k=1, . . . , K*. Once the energies are allocated the transmitter provides the receiver with the allocated energies.

In accordance with a third embodiment of the invention the selection of the spreading sequences may be achieved by means of a minimum system value based discrete bit loading algorithm. The minimum system value based approach replaces the mean system value based approach discussed in respect of the first and second embodiments of the invention. As such, the third embodiment of the invention is applicable for either the non-SIC based receiver of the first embodiment of the invention, or the SIC-based receiver of the second embodiment of the invention. Only those features of the third embodiment of the invention that differ to either of the first or second embodiments of the invention shall be discussed in detail.

The numbers of sequences K*_(EE), for the equal energy cases will be optimized to maximize the total rate R_(T,EE). The algorithm will initially set the temporary optimum number K_(opt)=K and will use the vectors {right arrow over (q)}_(k), {right arrow over (q)}_(k,1) and {right arrow over (q)}_(k,2) for k=1, . . . , K_(opt) and {right arrow over (k)}_(order) and also the parameters E_(T), N_(T), N_(R), σ², K, L. A size K vector with the initial values {right arrow over (b)}_(min)={right arrow over (0)}_(K) an N_(T)K×K dimensional matrix K_(squences) with the initial values K_(squences)=0_(K×K) will be generated as part of the following iterative process after having run the first three steps outlined as part of the first embodiment of the invention.

1. The k^(th) element of the minimum bit rates vector {right arrow over (b)}_(min) is set to [{right arrow over (b)}_(min)]_(k)=b_(p) _(k) for k=1, . . . , K by choosing the discrete bit value b_(p) _(k) to satisfy the inequalities:

λ*(b _(p) _(k) )≦[{right arrow over (λ)}_(min)]_(k)<λ*(b _(p) _(k) ₊₁)   (36)

2. The optimum number K*_(EE) is given by

$K_{EE}^{*} = {\arg \left( {\max\limits_{1 \leq k \leqq K}\left( {k\left\lbrack {\overset{\rightarrow}{b}}_{\min} \right\rbrack}_{k} \right)} \right)}$

and the total rate is R_(T,EE)=K*_(EE)b₁ ^((min)) where b₁ ^((min))=[{right arrow over (b)}_(min)]_(K*) _(EE) for the equal energy loading scheme. The total number of bits can be further increased by identifying a total of m channels which maximizes

$m = {\arg\left( {\max\limits_{1 \leq k < {({K - K_{EE}^{*} - 1})}}\left( {k\left\lbrack {\overset{\rightarrow}{b}}_{\min} \right\rbrack}_{k} \right)} \right)}$

with the rate b₂ ^((min))=[{right arrow over (b)}_(min)]_(m) to transmit a total number of bits:

R _(T,EE)=(K* _(EE) −m)b ₁ ^((min)) +mb ₂ ^((min)).   (37)

2. The signature sequences

$S^{({EE})} = \left\lbrack {{\overset{\rightarrow}{s}}_{1}^{({EE})},\ldots \mspace{14mu},{\overset{\rightarrow}{s}}_{K_{EE}^{*}}^{({EE})}} \right\rbrack$

for the equal energy loading scheme is constructed using the original sequence matrix S=[{right arrow over (s)}₁. . . {right arrow over (s)}_(K)] and setting {right arrow over (s)}_(k) ^((EE)){right arrow over (s)}_(c) _(k) where c_(k)=└K_(squences)┘_(k,K*) _(EE) for k=1, . . . , K*_(EE*).

For the equal energy loading scheme, the energy is set to

$E_{k} = \frac{E_{T}}{K_{EE}^{*}}$

for each channel k=1, . . . , K*_(EE).

According to a fourth embodiment of the invention an iterative water-filling based continuous bit loading method is utilised in place of the mean system value bit loading method of the first embodiment of the present invention. Again, the fourth embodiment of the invention can be utilised with either the non-SIC based receiver of the first embodiment of the invention, or the SIC-based receiver of the second embodiment of the invention. Furthermore, only those features of the fourth embodiment of the invention that differ to the previously described embodiments of the invention shall be discussed in detail.

The method will initially set the optimum number K* of channels to be K*=K. At the start, a set of system values λ_(k), given in (15), for k=1, . . . , K* will be produced as the elements of the size K* vector {right arrow over (λ)}=└λ₁, . . . λ_(K*)┘ using

$E_{k} = \frac{E_{T}}{K^{*}}$

and C⁻¹, given in (13). The vector {right arrow over (λ)} will then be used to reorganize the match filter sequences using {right arrow over (q)}_(k)={right arrow over (q)}_(a) _(k) , {right arrow over (q)}_(k,1)={right arrow over (q)}_(a) _(k) _(,1) and {right arrow over (q)}_(k,2)={right arrow over (q)}_(a) _(k) _(,2) and the vector {right arrow over (k)}_(order) using [{right arrow over (k)}_(order)]_(k)=[{right arrow over (k)}_(order) ]_(a) _(k) for k=1, . . . , K* where a_(k) is the index number of the k^(th) smallest element of {right arrow over (λ)}. Next the iterations will start. During each iteration the system values will be calculated either using (26) or (15) and the system values and corresponding signature sequences will be ordered such that the system values will appear in an ascending order. The system values will then be used to calculate the channel SNR values and the water filling constant. The channel SNRs and the water filling constant will be used to allocate energies to each channel. If the energy for the first spreading sequence is negative the first spreading sequence will be removed and the above steps will be repeated until the first energy allocation is positive. For a positive first energy allocation the system value calculations, reordering of signature sequences and system values, the channel SNR and water filling calculations and also the energy allocation calculations will be repeated for a given number of iterations. With the final energy allocations the corresponding system values will be used to calculate the signal to noise ratio for each spreading sequence. The SNR values will be used to determine the rate allocated to each spreading sequence.

The water filling algorithm is iterated as follows:

1. The loop counter, I, is set to to be I=1. If K*<K the number of energies E_(k) and the sequences {right arrow over (q)}_(k), {right arrow over (q)}_(k,1), {right arrow over (q)}_(k,2) and hence the size, K*, of vector {right arrow over (k)}_(order) are reduced from K*+1 to K* using E_(k)=E_(k+1) and {right arrow over (q)}_(k)={right arrow over (q)}_(k+1), {right arrow over (q)}_(k,1)={right arrow over (q)}_((k+1),1) and {right arrow over (q)}_(k,2)={right arrow over (q)}_((k+1),2) and also [{right arrow over (k)}_(order)]_(k)=[{right arrow over (k)}_(order)]_(k+1) for k=1, . . . , K*.

2. For the system under consideration a set of system values λ_(k) are produced using either (26) or (15) to construct the size K* channel SNR vector {right arrow over (g)} using

${\left\lbrack \overset{\rightarrow}{g} \right\rbrack_{k} = \frac{\lambda_{k}}{E_{k}\left( {1 - \lambda_{k}} \right)}},$

for k=1, . . . , K*. The water filling constant is calculated as

$K_{WF} = {\frac{1}{K^{*}}{\left( {E_{T} + {\Gamma {\sum\limits_{k = 1}^{K^{*}}\frac{1}{\left\lbrack \overset{\rightarrow}{g} \right\rbrack_{k}}}}} \right).}}$

The energies are allocated using

${E_{k} = {{K_{WF} - {\frac{1}{\left\lbrack \overset{\rightarrow}{g} \right\rbrack_{k}}\mspace{14mu} {for}\mspace{14mu} k}} = 1}},\ldots \mspace{14mu},{K^{*}.}$

3. Next the term a_(k) is used as the index number of the k^(th) smallest element of {right arrow over (g)}. The index number a_(k) is employed to re-sequence the vectors, the energies and also the elements of the vector {right arrow over (k)}_(order) using {right arrow over (q)}_(k)={right arrow over (q)}_(a) _(k) , {right arrow over (q)}_(k,1)={right arrow over (q)}_(a) _(k) _(,1) and {right arrow over (q)}_(k,2)={right arrow over (q)}_(a) _(k) _(,2) and E_(k)=E_(a) _(k) and also [{right arrow over (k)}_(order)]_(k)=[{right arrow over (k)}_(order)]_(a) _(k) for k=1, . . . , K*.

4. If E₁<0, the number of channels to be used is set to be K*=K*=1 and the steps are repeated starting with step 1. Otherwise the counter is increased using I=I+1 and then if I<I_(max) the steps are repeated starting at step 2.

The iterative water filling algorithm returns the non-discrete rates and also the reordered signature sequences using {right arrow over (s)}^((WF))={right arrow over (s)}_(a) _(k) where a_(k)=[{right arrow over (k)}_(order)]_(k) for k=1, . . . , K*. The iterative water filling sum capacity upper bound can be obtained using the system values identified during the last iteration I=I_(max).

After having run the water filling algorithm to determine the optimum number of sequences and also the order of sequences, this algorithm is then re-run by reducing the total number of available codes from K to 1 in steps of 1. The total number of codes which results in the highest total rate is then chosen to be the optimum number of codes.

While the above-mentioned embodiments of the invention all relate to MEMO-based systems it will be appreciated that in accordance with alternative embodiments of the invention, SISO-based systems are utilised. In SISO-based systems it will be appreciated that N_(r)=1 and N_(R)=1.

It will be appreciated that the terms spreading sequence and channel can be interchangeable.

The various methods described above may be implemented in hardware or by a computer program. When implemented by a computer program a computer could be provided having a memory to store the computer program, and a processor to to implement the computer program. The computer program may include computer code arranged to instruct a computer to perform the functions of one or more of the various methods described above. The computer program and/or the code for performing such methods may be provided to an apparatus, such as a computer, on a computer readable medium. The computer readable medium could be, for example, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, or a propagation medium for data transmission, for example for downloading the code over the Internet. Non-limiting examples of a physical computer readable medium include semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disc, and an optical disk, such as a CD-ROM, CD-R/W or DVD.

An apparatus such as a computer may be configured in accordance with such computer code to perform one or more processes in accordance with the various methods discussed above.

It will be appreciated that any of the above-mentioned embodiments may be combined with one another where appropriate. Furthermore, it will be appreciated that the above-described embodiments of the invention are provided as example only and as such the scope of the invention is only limited by the scope of the appended claims. 

1. A method for data transmission in a radio data transmission system having a plurality of parallel single-input single-output or multiple-input multiple-output channels over which the data is transmitted, the data represented by a plurality of data symbols, the data symbols being spread prior to transmission by a plurality of spreading sequences, the method comprising: determining a system value λ_(k) for each signature sequence k of a plurality of signature sequences K, wherein the system value λ_(k) is indicative of a signal-to-noise ratio of the associated signature sequence k; determining a number of signature sequences K* to be used for spreading the data symbols in accordance with the system values λ_(k) associated with the plurality of signature sequences K; selecting the signature sequences S to be used to spread the data symbols from the plurality of signature sequences K in accordance with the system values λ_(k) associated with the plurality of signature sequences K, wherein the number of signature sequences selected corresponds to the determined number of signature sequences K*; and spreading the data symbols using the selected signature sequences S.
 2. The method according to claim 1, wherein the number of sequences K* is determined and the signature sequences S to be used to spread the symbols are selected by: calculating the mean system value $\left\lbrack {\overset{\rightarrow}{\lambda}}_{mean} \right\rbrack_{K_{best}} = \frac{\sum\limits_{k}^{K_{best}}\lambda_{k}}{K_{best}}$  for K_(best)=K to K_(best)=1, wherein K_(best) is an initial number of signature sequences utilised for calculating the mean system value └{right arrow over (λ)}_(mean)┘_(K) _(best) , and wherein each signature sequence is assigned an equal transmission energy E_(k) for calculating the mean system values └{right arrow over (λ)}_(mean)┘_(K) _(best) ; determining the number of signature sequences K* to be used for spreading the data symbols and selecting the signature sequences S to be used to spread the symbols in accordance with the mean system value vector {right arrow over (λ)}_(mean), wherein the mean system value vector {right arrow over (λ)}_(mean) comprises the plurality of mean system values └{right arrow over (λ)}_(mean)┘_(K) _(best) for K_(best)=1 to K_(best)=K.
 3. The method according to claim 2, wherein: the number of signature sequences K* to be used for spreading the data symbols is determined to be equal to the initial number of signature sequences K_(best) when the following equation is satisfied: ${\lambda^{*}\left( b_{p_{K_{best}}} \right)} \leq \left\lbrack {\overset{\rightarrow}{\lambda}}_{mean} \right\rbrack_{K_{best}} < {{\lambda^{*}\left( b_{p_{K_{best}} + 1} \right)}.}$ for K_(best)=1 to K_(best)=K, wherein └{right arrow over (λ)}_(mean)┘_(K) _(best) is the mean system value, b_(p_(K_(best)))  is a discrete data rate that can be allocated to each data symbol and is chosen from a plurality of data rates from b₁ to b_(p) for integer values of p from p=1 to p=P for a plurality of P discrete rates for a target system value λ*(b_(p)), the target system value λ*(b_(p)) being determined in terms of the data rate b_(p) by using the following equation: ${\lambda^{*}\left( b_{p_{k}} \right)} = \frac{\Gamma \left( {2^{b_{p}} - 1} \right)}{1 - {\Gamma \left( {2^{b_{p}} - 1} \right)}}$ wherein Γ is the gap value for the modulation scheme; and the selected signature sequences S are the K* signature sequences of the plurality of signature sequences K having the highest system values λ_(k).
 4. The method according to claim 1, wherein the number of sequences K* is determined and the signature sequences S to be used to spread the symbols are selected by: calculating the minimum system value └{right arrow over (λ)}_(min)┘_(K) _(opt) =min({right arrow over (λ)}) for K_(opt)=K to K_(opt)=1 wherein K_(opt) is an initial number of signature sequences utilised for calculating the minimum system value └{right arrow over (λ)}_(min)┘_(K) _(opt) , and each signature sequence is assigned an equal transmission energy E_(k); determining the number of signature sequences K* and selecting the signature sequences S to be used to spread the data symbols in accordance with the minimum system value vector {right arrow over (λ)}_(min) comprising a plurality of minimum system values └{right arrow over (λ)}_(min)┘_(K) _(opt) for K_(opt) K to K_(opt)=1.
 5. The method according to claim 4, wherein: the number of signature sequences K* to be used for spreading the data symbols is determined to be equal to the initial number of signature sequences K_(opt) when the following equation is satisfied: ${\lambda^{*}\left( b_{p_{K_{opt}}} \right)} \leq \left\lbrack {\overset{\rightarrow}{\lambda}}_{\min} \right\rbrack_{K_{opt}} < {{\lambda^{*}\left( b_{p_{K_{opt}} + 1} \right)}.}$ for K_(opt)=1 to K_(opt)=K, wherein └{right arrow over (λ)}_(min)┘_(K) _(opt) is the minimum system value, b_(p) _(Kopt) is a discrete data rate that can be allocated to each symbol and is chosen from a plurality of data rates from b₁ b_(p) for integer values of p from p=1 to p=P for a plurality of P discrete rates for a target system value λ*(b_(p)); and the selected signature sequences S are the K* signature sequences of the plurality of signature sequences K having the highest system values λ_(k) .
 6. The method according to claim 1, further comprising: ordering, before selecting the signature sequences S, the plurality of signature sequences K from the signature sequence k of the plurality of signature sequences K having the highest system value λ_(k) to the signature sequence k of the plurality of signature sequences K having the lowest system value λ_(k); wherein a high system value λ_(k) is indicative of a high signal-to-noise ratio, and the selected signature sequences S are the first K* signature sequences of the ordered signature sequence.
 7. The method according to claim 1, further comprising: allocating data rates b_(p) _(k) to the plurality of selected signature sequences S in accordance with the system value λ_(k) wherein the summation of the allocated data rates b_(p) _(k) corresponds to a total data rate per symbol period.
 8. The method according to claim 7, wherein the data rates b_(p) _(k) are allocated when determining the number of signature sequences K*.
 9. A method for data transmission in a radio data transmission system having a plurality of parallel single-input single-output or multiple-input multiple-output over which the data is transmitted, the data represented by a plurality of data symbols, the data symbols being spread prior to transmission by a plurality of spreading sequences, the method comprising: determining a system value λ_(k) for each signature sequence k of a plurality of signature sequences K, wherein the system value λ_(k) is indicative of a signal-to-noise ratio of the associated signature sequence k; determining a number of signature sequences K* to be used for spreading the data symbols in accordance with the system values λ_(k) associated with the plurality of signature sequences K; selecting the signature sequences S to be used to spread the data symbols from the plurality of signature sequences K in accordance with the system values λ_(k) associated with the plurality of signature sequences K, wherein the number of signature sequences selected corresponds to the determined number of signature sequences K*; and spreading the data symbols using the selected signature sequences S, further comprising: allocating data rates b_(p) _(k) to the plurality of selected signature sequences S in accordance with the system value λ_(k) , wherein the summation of the allocated data rates b_(p) _(k) corresponds to a total data rate per symbol period, wherein the number of sequences K* is determined and the signature sequences S to be used to spread the symbols are selected by: calculating the mean system value $\left\lbrack {\overset{\rightarrow}{\lambda}}_{mean} \right\rbrack_{K_{best}} = \frac{\sum\limits_{k}^{K_{best}}\lambda_{k}}{K_{best}}$ for K_(best)=K to K_(best)=1, wherein K_(best) is an initial number of signature sequences utilised for calculating the mean system value └{right arrow over (λ)}_(mean)┘_(K) _(best) , and wherein each signature sequence is assigned an equal transmission energy E_(k) for calculating the mean system values └{right arrow over (λ)}_(mean)┘_(K) _(best) ; determining the number of signature sequences K* to be used for spreading the data symbols and selecting the signature sequences S to be used to spread the symbols in accordance with the mean system value vector {right arrow over (λ)}_(mean), wherein the mean system value vector {right arrow over (λ)}_(mean) comprises the plurality of mean system values └{right arrow over (λ)}_(mean)┘_(K) _(best) for K_(best)=1 to K_(best)=K., wherein the total rate is determined by finding a maximum integer number m_(EE) that satisfies: ${{\left( {K^{*} - m_{EE}} \right){\lambda^{*}\left( b_{p_{K^{*}}} \right)}} + {m_{EE}{\lambda^{*}\left( b_{p_{K^{*}} + 1} \right)}}} \leq {K^{*}\left\lbrack {\overset{\rightarrow}{\lambda}}_{\min} \right\rbrack}_{K^{*}}$ wherein the first group of signature sequences are (K*−m_(EE)) used to transmit data at a discrete data rate b_(p_(K^(*))) and a second group or signature sequences comprising the remaining m_(EE) signature sequences are used to transmit data at a discrete rate b_(p_(K^(*)) + 1) for the case corresponding to equal energy allocation.
 10. A method for data transmission in a radio data transmission system having a plurality of parallel single-input single-output or multiple-input multiple-output channels over which the data is transmitted, the data represented by a plurality of data symbols, the data symbols being spread prior to transmission by a plurality of spreading sequences, the method comprising: determining a system value λ_(k) for each signature sequence k of a plurality of signature sequences K, wherein the system value λ_(k) is indicative of a signal-to-noise ratio of the associated signature sequence k; determining a number of signature sequences K* to be used for spreading the data symbols in accordance with the system values λ_(k) associated with the plurality of signature sequences K; selecting the signature sequences S to be used to spread the data symbols from the plurality of signature sequences K in accordance with the system values λ_(k) associated with the plurality of signature sequences K, wherein the number of signature sequences selected corresponds to the determined number of signature sequences K*; and spreading the data symbols using the selected signature sequences S., further comprising: allocating data rates b_(p) _(k) to the plurality of selected signature sequences S in accordance with the system value λ_(k), wherein the summation of the allocated data rates b_(p) _(k) corresponds to a total data rate per symbol period, wherein the number of sequences K* is determined and the signature sequences S to be used to spread the symbols are selected by: calculating the minimum system value └{right arrow over (λ)}_(min)┘_(K) _(opt) =min (λ) for K_(opt)=K to K_(opt)=1 wherein K_(opt) is an initial number of signature sequences utilised for calculating the minimum system value └{right arrow over (λ)}_(min)┘_(K) _(opt) , and each signature sequence an equal transmission energy E_(k); determining the number of signature sequences K* and selecting the signature sequences S to be used to spread the data symbols in accordance with the minimum system value vector {right arrow over (λ)}_(min) comprising a plurality of minimum system values └{right arrow over (λ)}_(min)┘_(K) _(opt) for K_(opt)=K to K_(opt)=1, wherein the total rate is determined by finding a maximum integer m_(ES) that satisfies: ${{\left( {K^{*} - m_{ES}} \right){\lambda^{*}\left( b_{p_{K^{*}}} \right)}} + {m_{ES}{\lambda^{*}\left( b_{p_{K^{*}} + 1} \right)}}} \leq {K^{*}\left\lfloor {\overset{\rightarrow}{\lambda}}_{mean} \right\rfloor_{K^{*}}}$ wherein a first group of signature sequences (K*−m_(ES)) are used to transmit data at a discrete data rate b_(p) _(K*) , and a second group of signature sequences comprising the remaining m_(ES) signature sequences are used to transmit data at a discrete rate b_(p_(K^(*)) + 1).
 11. The method according to claim 7, further comprising: allocating transmission energies to the plurality of selected signature sequences K in accordance with the allocated transmission data rate b_(p) _(k) and the corresponding system values λ_(k) to maximize the total data rate per symbol period for the total transmission energy, wherein the summation of the allocated transmission energies corresponds to a total transmission energy E_(T).
 12. The method according to claim 11, wherein the transmission energies E_(k,i) are determined iteratively with the following equation based upon a receiver without a successive interference cancellation, SIC, scheme wherein the mean system value is used to determine the number of signature sequences K*: $E_{k,i} = \frac{\lambda^{*}\left( b_{p_{K^{*}}} \right)}{{\overset{\rightarrow}{q}}_{k}^{H}C_{i - 1}^{- 1}{\overset{\rightarrow}{q}}_{k}}$ wherein i is the iteration number C_(i−1) ⁻¹ is an inverse covariance matrix which is determined by inverting covariance matrix C_(i−1), wherein the covariance matrix C_(i−1) is expressed in terms of an extended matched filter signature sequence matrix Q_(e) and an extended amplitude matrix A_(e,(i−1))I,

A_((i−1)) using the following equation C_(i−1)=Q_(e(i−1)) ²Q_(e) ^(H)+2σ²I_(N) _(R) _((N+l−1)), wherein

is the kronecker product and the amplitude matrix A_((i−1))=diag└√{square root over (E_(1,(i−1)))}, √{square root over (E_(2,(i−1)))}, . . . , √{square root over (E_(K*,(i−1)))}┘ is expressed in terms of transmission energies, wherein 2σ² is the noise variance, N_(R) is the number of receiver antennas, N is the processing gain, L is the multipath delay spread length, wherein the extended matched filter receiver sequence matrix Q_(e) is expressed in accordance with the following equation Q_(e)=[Q, Q₁, Q₂], wherein Q₁ represents the matched filter sequences for the previous symbol period and Q₂ represents the matched filter sequences for the next symbol period, and Q₁ and Q₂ are expressed in accordance with Q₁=└I_(N) _(R)

(J_(N+L−1) ^(T))^(N)┘Q=[{right arrow over (q)}_(1,1), . . . , {right arrow over (q)}_(k,1), . . . , {right arrow over (q)}_(K*,1)] and Q₂=[I_(N) _(R)

J_(N+L−1) ^(N)]Q=└{right arrow over (q)}_(1,2), . . . , {right arrow over (q)}_(k,2), . . . , {right arrow over (q)}_(K*,2)┘ wherein a {right arrow over (q)}_(k,1) and {right arrow over (q)}_(k,2) are the ISI matched filter sequences for the previous and next symbol periods of the number of signature sequences K*, wherein $J_{N + L - 1} = \begin{bmatrix} {\overset{\rightarrow}{0}}_{({N + L - 2})}^{T} & 0 \\ I_{N + L - 2} & {\overset{\rightarrow}{0}}_{N + L - 2} \end{bmatrix}$  is the shift matrix, wherein the matched filter despreading signature sequence matrix Q=└{right arrow over (q)}₁, . . . , {right arrow over (q)}_(k), . . . , {right arrow over (q)}_(K), ┘ is determined with the following equation Q=HS , wherein {right arrow over (q)}_(k) is the matched filter receiver despreading signature sequence for a plurality of transmission signature sequences S=└{right arrow over (s)}₁, . . . , {right arrow over (s)}_(k), . . . , {right arrow over (s)}_(K*)┘ of length N wherein H is the MIMO system convolution matrix for a frequency selective multipath channel, wherein the convolution matrix H is expressed in accordance with the following equation ${H = \begin{bmatrix} H^{({1,1})} & \ldots & H^{({1,N_{T}})} \\ \vdots & \ldots & \vdots \\ H^{({N_{R},1})} & \ldots & N^{({N_{R},N_{T}})} \end{bmatrix}},$  wherein N_(T) is the total number of transmitter antennas, the channel convolution matrix H^((n) ^(r) ^(,n) ^(t) ⁾ between each pair of receiver antenna 11, and transmitter antenna n_(t) with channel impulse response vector {right arrow over (h)}^((n) ^(r) ^(,n) ^(t) ⁾=[h₀ ^((n) ^(r) ^(,n) ^(t) ⁾, . . . , h_(L−1) ^((n) ^(r) ^(,n) ^(t) ⁾] is expressed in terms of the following equation $H^{({n_{r},n_{t}})} = {\begin{bmatrix} {\overset{\rightarrow}{h}}^{({n_{r},n_{t}})} & 0 & \ldots & 0 \\ 0 & {\overset{\rightarrow}{h}}^{({n_{r},n_{t}})} & \ldots & \vdots \\ \vdots & \ldots & \ddots & 0 \\ 0 & 0 & \ldots & {\overset{\rightarrow}{h}}^{({n_{r},n_{t}})} \end{bmatrix}.}$
 13. The method according to claim 11, wherein the transmission energies E_(k,i) are determined iteratively by solving the following equation based upon a receiver with a successive interference cancellation, SIC, scheme wherein the mean system value is used to determine the number of signature sequences K*: $E_{k,i} = \frac{\gamma^{*}\left( b_{p_{k}} \right)}{\begin{matrix} {\xi - \frac{E_{k,{({i - 1})}}{\xi_{3}}^{2}}{1 + {E_{k,{({i - 1})}}\xi_{l}}} -} \\ \frac{E_{k,{({i - 1})}}\left( {{\xi_{4}}^{2} - {2\frac{E_{k,{({i - 1})}}}{1 + {E_{k,{({i - 1})}}\xi_{1}}}\xi_{6}} + {\left( \frac{E_{k,{({i - 1})}}}{1 + {E_{k,{({i - 1})}}\xi_{1}}} \right)^{2}{\xi_{5}}^{2}{\xi_{3}}^{2}}} \right)}{1 + {E_{k}\left( {\xi_{2} - {\frac{E_{k,{({i - 1})}}}{1 + {E_{k,{({i - 1})}}\xi_{1}}}{\xi_{5}}^{2}}} \right)}} \end{matrix}}$ for a given inverse covariance matrix C_(k−1) ⁻¹ wherein the inverse matrix C_(k−1) ⁻¹ is the inverse of the covariance matrix C_(k−1) wherein the covariance matrix C_(k−1) is iteratively determined by solving the following equation: C _(k) C _(k−1) E _(k) {right arrow over (q)} _(k) {right arrow over (q)} _(k) ^(H) +E _(k) {right arrow over (q)} _(k,1) {right arrow over (q)} _(k,1) ^(H) +E _(k) {right arrow over (q)} _(k,2) {right arrow over (q)} _(k,2) ^(H) for k=1, . . . , K* when using C₀=2σ²I_(N) _(R) _((N+L−1)), wherein the target SNR γ*(b_(p) _(k) ) is determined by using the following equation: γ_(k)^(*)(b_(p_(k))) = Γ(2^(b_(p_(k))) − 1), the weighting factors ξ, ξ₁, ξ₂, ξ₃, ξ₄, ξ₅, and ξ₆ are constructed from the SIC receiver covariance matrix C_(k−1) ⁻¹ and {right arrow over (q)}_(k), {right arrow over (q)}_(k,1) and {right arrow over (q)}_(k,2) using ξ={right arrow over (q)} _(k) ^(H) {right arrow over (d)}, ξ ₁ ={right arrow over (q)} _(k,1) ^(H) {right arrow over (d)} ₁, ξ₂ ={right arrow over (q)} _(k,2) ^(H) {right arrow over (d)} ₂, ξ₃ ={right arrow over (q)} _(k) ^(H) {right arrow over (d)} ₁, ξ₄ ={right arrow over (q)} _(k) ^(H) {right arrow over (d)} ₂, ξ₅ ={right arrow over (q)} _(k,1) ^(H) {right arrow over (d)} ₂, ξ₆=Real(ξ₃ξ*₄ξ₅); wherein the distance vectors {right arrow over (d)}, {right arrow over (d)}₁, {right arrow over (d)}₂ are determined using the following equations {right arrow over (d)}=C _(k−1) ⁻¹ {right arrow over (q)} _(k) , {right arrow over (d)} ₁ =C _(k−1) ⁻¹ {right arrow over (q)} _(k,1) , {right arrow over (d)} ₂ =C _(k−1) ⁻¹ {right arrow over (q)} _(k,2).
 14. The method according to claim 13, wherein for an inverse covariance matrix C_(k−1) ⁻¹ with ${C_{0}^{- 1} = {\frac{1}{2\sigma^{2}}I_{N_{R}{({N + L - 1})}}}},$ and also for an energy allocation E_(k) and a set of MIMO system parameters with {right arrow over (q)}_(k), {right arrow over (q)}_(k,1) and {right arrow over (q)}_(k,2), E_(k), E_(k), σ², the inverse covariance matrix C_(k) ⁻¹ is constructed for k=1 , . . . , K* starting at k=1 using the inverse covariance matrix C_(k−1) ⁻and the energy E_(k) by: determining the distance vectors, {right arrow over (d)}, {right arrow over (d)}₁ and {right arrow over (d)}₂; determining the weighting factors ξ, ξ₁, ξ₂, ξ₃, ξ₄, ξ₅, and ξ₆, and determining the weighted energy terms ζ₁, and ζ₂ by using the allocated energy E_(k) for k=1, . . . , K* in the following equations: ${\zeta_{1} = \frac{E_{k}}{1 + {E_{k}\xi_{1}}}},{{\zeta_{2} = \frac{E_{k}}{1 + {E_{k}\left( {\xi_{2} - {\zeta_{1}{\xi_{5}}^{2}}} \right)}}};}$ determining the interim matrices Z₁, Z₂, Z₃ by solving the following equations: Z ₁ ={right arrow over (d)} ₁ {right arrow over (d)} ₁ ^(H) , Z ₂ ={right arrow over (d)} ₂ {right arrow over (d)} ₂ ^(H) , Z ₃ ={right arrow over (d)} ₁ {right arrow over (d)} ₂ ^(H); determining the inverse reduced covariance matrix D_(k) ⁻¹ by solving the following equation: D _(k) ⁻¹ =C _(k−1) ⁻¹−(ζ₁ ²ζ₂|ξ₅|²+ζ₁)Z ₁−ζ₂ Z ₂+ζ₁ζ₂(ξ₅ Z ₃+ξ*₅ Z ₃ ^(H)); and constructing the inverse of the covariance matrix C_(k) ⁻¹ by using the following equation: C _(k) ⁻¹ =D _(k) ⁻¹ −ζZ ₄; wherein the weighted energy term C is determined by solving the following equation: ${\zeta = \frac{E_{k}}{1 + {E_{k}\begin{pmatrix} {\xi - \frac{E_{k}{\xi_{3}}^{2}}{1 + {E_{k}\xi_{l}}} -} \\ \frac{E_{k}\left( {{\xi_{4}}^{2} - {2\frac{E_{k}}{1 + {E_{k}\xi_{1}}}\xi_{6}} + {\left( \frac{E_{k}}{1 + {E_{k}\xi_{1}}} \right)^{2}{\xi_{5}}^{2}{\xi_{3}}^{2}}} \right)}{1 + {E_{k}\left( {\xi_{2} - {\frac{E_{k}}{1 + {E_{k}\xi_{1}}}{\xi_{5}}^{2}}} \right)}} \end{pmatrix}}}},;$ wherein the interim matrix Z₄ is determined by using the following equation: Z ₄ ={right arrow over (d)} ₃ {right arrow over (d)} ₃ ^(H); and wherein the distance vector {right arrow over (d)}₃ is determined using the following equation: {right arrow over (d)} ₃ =D _(k) ⁻¹ {right arrow over (q)} _(k).
 15. The method according to claim 1, wherein the number of signature sequences K* is determined and the signature sequences S to be used to spread the data are selected using an iterative water-filling based continuous bit loading method comprising: determining the number of signature sequences K* by determining the total number of signature sequences that maximize the total data rate b_(T,K).
 16. The method according to claim 15, wherein for a plurality of matched filter signature sequences {right arrow over (q)}_(k), {right arrow over (q)}_(k,1) and {right arrow over (q)}_(k,2), the iterative water-filling optimisation method further comprises: setting an initial number of signature sequences K_(opt); determining the system values λ_(k) associated with the initial number of signature sequences K_(opt); determining a channel SNR vector {right arrow over (g)} using the following equation ${\left\lbrack \overset{\rightarrow}{g} \right\rbrack_{k} = \frac{\lambda_{k}}{E_{k}\left( {1 - \lambda_{k}} \right)}};$ for an energy allocation E_(k); determining a water filling constant K_(WF) using the following equation: ${K_{WF} = {\frac{1}{K_{opt}}\left( {E_{T} + {\Gamma {\sum\limits_{k = 1}^{K_{opt}}\frac{1}{\left\lbrack \overset{\rightarrow}{g} \right\rbrack_{k}}}}} \right)}};$ wherein E_(T) is a total transmission energy; determining energies E_(k) to be allocated to each signature sequence k of the plurality of signature sequences K by using the following equation: $E_{k} = {K_{WF} - \frac{\Gamma}{\left\lbrack \overset{\rightarrow}{g} \right\rbrack_{k}}}$ reordering the matched filter signature sequences {right arrow over (q)}_(k), {right arrow over (q)}_(k,1) and {right arrow over (q)}_(k,2) in accordance with the system values └{right arrow over (λ)}┘_(k)=λ_(k) associated with the initial number of signature sequences K_(opt) in an ascending order to provide an ordered list of matched filter signature sequences; deleting the first matched filter sequences {right arrow over (q)}₁, {right arrow over (q)}_(1,1) and {right arrow over (q)}_(1,2) of the ordered list of matched filter signature sequences; and setting K_(opt)=K_(opt)−1 if the allocated energy E_(l)is negative; repeating the above steps; determining a total number of bits b_(T,K) to be transmitted by using ${b_{T,K} = {\sum\limits_{k = 1}^{K_{opt}}{\log_{2}\left( {1 + \frac{\lambda_{k}}{\Gamma \left( {1 - \lambda_{k}} \right)}} \right)}}};$ determining the number of signature sequences K* of the plurality of signature sequences K under consideration by using K*=K_(opt).
 17. The method according to claim 16, wherein the iterative water filling method determines the number of signature sequences K* by: initially setting the total number of signature sequences K*=K; determining a total data rate to be transmitted and the number of signature sequences K* for values of K*=K−1 until the number of signature sequences K* reaches the value K*=1; and selecting the number of signature sequences K* for the plurality of signature sequences K which maximises the total data rate.
 18. The method according to claim 1, wherein the system value is determined by the following equation: λ_(k)=γ_(k)ε_(k) wherein γ_(k) is the signal-to-noise ratio at an output of a de-spreading unit of an MMSE receiver, and ε_(k) is the mean-square-error at the output of the de-spreading unit, the mean-square-error relating to the system value by λ_(k)=1−ε_(k) .
 19. The method according to either claim1 or claim 14, wherein the system value λ_(k) is determined in accordance with the following equation based upon a receiver without a successive interference cancelling, SIC, scheme: λ_(k) =E _(k) {right arrow over (q)} _(k) ^(H) C ⁻ {right arrow over (q)} _(k) wherein C is expressed in terms of the extended matched filter signature sequence matrix Q_(e) and the extended amplitude matrix A_(e)=I

A using the following equation C=Q_(e)A_(e) ²Q_(e) ^(H)+2σ²I_(N) _(R) _((N+l−1)) wherein

is the kronecker product and the amplitude matrix A=diag[√{square root over (E₁)}, √{square root over (E₂)}, . . . , √{square root over (E_(K*))}], wherein the matched filter despreading signature sequence matrix Q=└{right arrow over (q)}₁, . . . , {right arrow over (q)}_(k), . . . , {right arrow over (q)}_(K*)┘ is formed to construct the extended matched filter signature sequence matrix Q_(e) by using the following equation Q_(e)=[Q, Q₁, Q₂], wherein Q₁ represents the matched filter sequences for the previous symbol period and Q₂ represents the matched filter sequences for the next symbol period, wherein Q₁ and Q₂ are expressed in accordance with the following equations Q₁=└I_(N) _(R)

(J_(N+L−1) ^(T))^(N)┘Q=[{right arrow over (q)}_(1,1), . . . , {right arrow over (q)}_(k,1), . . . , {right arrow over (q)}_(K*,1)] and Q₂=[I_(N) _(R)

J_(N+L−1) ^(N)]Q=└{right arrow over (q)}_(1,2). . . , {right arrow over (q)}_(k,2), . . . {right arrow over (q)}_(K*,2)┘, wherein {right arrow over (q)}_(k,1) and {right arrow over (q)}_(k,2) are the ISI matched filter sequences for the previous and next symbol periods.
 20. The method according to either claim 1 or claim 12, wherein the system value λ_(k) is determined in accordance with the following equation based upon a receiver having a successive interference cancelling, SIC, scheme: λ_(k) =E _(k) {right arrow over (q)} _(k) ^(H) C _(k) ⁻¹ {right arrow over (q)} _(k) wherein C_(k−1) is a covariance matrix which is iteratively determined by solving the following equation: C _(k) =C _(k−1) +E _(k) {right arrow over (q)} _(k) {right arrow over (q)} _(k) ^(H) +E _(k) {right arrow over (q)} _(k,1) {right arrow over (q)} _(k,1) ^(H) +E _(k) _({right arrow over (q)}) _(k,2) {right arrow over (q)} _(k,2) ^(H) for k=1, . . ., K* when using C₀=2σ²I_(N) _((N+L−1)) wherein {right arrow over (q)}_(k,1) and {right arrow over (q)}_(k,2) are the ISI matched filter sequences for the previous and next symbol periods and {right arrow over (q)}_(k) is the matched filter despreading signature sequence.
 21. Apparatus arranged to perform the method of claim
 1. 22. (canceled)
 23. A computer readable medium implementable on a computer and operable, in use, to perform the method of claim
 1. 